2017-10-02 16 views
0

いいえ!私は支店を作成しましたprac。私は自分の変更を行い、それらをコミットしてマスターとマージしています。新しい支店の上流に設定する

要するに、これは私のワークフローが2つの支店、すなわちマスターとプラクティスで構成されている場合に通常行うことです。たびに、私はPRACブランチのコードが

  1. GitのチェックアウトPRAC

  2. gitのは、何を追加gitの-mをコミットする "ので、nはそう"

  3. Gitチェックアウトマスター

    、何かをしたいです
  4. GitのマージPRAC

私は私の枝を削除しないでください。通常、私は常に最終的なコードのショーケースのために練習とマスターのために1つの支店を持っています。コメントは私の考え方を改善することを歓迎しています:D

今、私は故意にgit pushを打ちました。私は次のことに気付いた。

致命的:現在のブランチpracにはアップストリームブランチがありません。 今すぐ

git push --set-upstream origin prac 

を使用し、現在のブランチをプッシュし、上流などのリモートを設定するには、私の質問は、私は、リモートにこのPRACブランチのために上流に設定した場合、その後、私は合併行う必要がありますということですか?それとも、基本的にマージとは違うの?

私が理解していることから、上流に設定した後、私はすでにメインリポジトリに変更を加えました。それでは、何がマージされるのでしょうか?または、これは後でプッシュする必要のある新しいインスタンス/フォークにプッシュしますか?

私の友人が混乱しています!

+1

また、上流の設定とは何か、あなたのために何を行うかを説明する関連する質問に[この回答](https://stackoverflow.com/a/37770744/1256452)を参照してください。 – torek

+0

ありがとう@torek。読んで消費するロット。 – kushalvm

答えて

0

upstreamの設定は、ローカルブランチとリモートレポのブランチの関係です。あるローカルブランチを別のローカルブランチにマージすることとは関係ありません(おそらく、あなたが設定の設定を間違って組み合わせた場合を除いて)。 push(構成やコマンドの引数が別の振る舞いを指定していない状況で)を実行しているときにrefsがどのように更新されるかに影響し、(コメント内のコメントが指摘しているように)マージのためのデフォルトrefとしても役立ちます。

したがって、ローカルでpracブランチを使用している場合、はのpracブランチをデフォルトで更新します。しかし、これはあなたのpracの変更をmasterのいずれのレポにも組み込んでいません。これはmergeです。

+0

これは正しくありません。アップストリーム設定は 'git merge'が引数なしで実行されたときの動作に影響します(' git config merge.defaultToUpstream false'でこれを無効にしていない場合)。 – torek

+0

ええと...私は 'merge' *が何をマージするのかについてのデフォルトの振る舞いを持っていることさえ知りませんでした。私がどのくらい徹底的にドキュメントを読んだかを示しています。 –

0

他のレポのドロップダウンが表示されているのを私は打ちました。だから私は上流に設定して私の支店を押して、それは私が思ったことをした。それは単にマスターと一緒に私のレポに新しい支店を追加しました。

だから私は、これは私が理解から、私のクエリ

に答えると思い、上流設定した後、私はすでにメインのレポに 変更をプッシュしています。それでは、何がマージされるのでしょうか?またはこれは は後でプッシュする必要があるいくつかの新しいインスタンス/ forkにプッシュしますか?

また、私はマージのことについても明確です。それはリンゴとオレンジを比較しています。

しかし、有用な記事は、マージと詳細な洞察力についてのtorekによって指摘されています。これをやった後、マークの答えは少し意味があります。したがって、それを受け入れる