2017-08-31 16 views
0

私はV_2という名前の私のマスターブランチから新しいローカルブランチを作成しました。変更をコミットして元に戻すと、元の/ V_2にプッシュされます。 私が今、自分のマスターブランチにチェックアウトして、変更を取り出そうとすると、マスターブランチがオリジン/マスターから引き抜こうとしているときに、すでに最新であると考えます。Gitでプッシュとプル

ちょうど1つの起源を持つ方法があります。すべてがプッシュされるか、何か根本的な欠点がありますか?私は本当にgitに新しいです、そして、私は何かが恋しくなるようです。

+1

プルイングは、ブランチを他のブランチにマージしません。 gitの本を読んで、マージとリベースを探してください。 –

答えて

1

新しいブランチ(マスター以外)に変更を加えたので、マスターに変更を加えたい場合は、それらをマージする必要があります。

$ git merge V_2 

あなた$ git pull明示的に述べない限り、それは(アップストリームが正しく設定されていると仮定して)現在チェックアウトブランチのプルを行います。例えば:$ git pull origin <branch>

単に「起源」1つの起源

を持っているそこの方法は、単にリモートの名前です。

すべてがプッシュされるか、私はgitの根本的なものが欠けていますか?

gitの「分散」性がないと思います。ブランチはgitで非常に安いです。物事のためのブランチを作成し、完了したらそれらをマージします。

1

もしもあなたはマスター(あなたの説明はあなたのものではないようです)に変更を加えなかった場合、明らかに変更はありません。別のブランチに変更を加えました:V_2。

あなたがしたい場合は、に必要なマスターにV_2で行った変更を含み、masterブランチにV_2ブランチをマージします。それを行うには:

  1. チェックアウトマスター:git merge V_2

I:git pull

  • がマスターにV_2をマージ:git checkout master
  • は最新のリモート・マスターを使用してローカルのmasterブランチがあることを確認しますあなたの質問に答えましたが、GITの基本的な理解が不足しているようです。私は良いチュートリアルを読むことをお勧めします。 GITがどのように動作するのかを理解することが重要です。分散システムであり、最初は直感的ではないかもしれません。

    覚えておくべき最も重要なことは、常に各ブランチに2つの「バージョン」があることです。ローカルのもの(あなたのマシン上)とリモートのもの(GITサーバー - あなたの場合、の起源はの名前で)。リモートブランチは、初めてローカルブランチをサーバーにプッシュするときに作成されます。これらの2つのブランチ(ローカルとリモート)はいつでも異なる状態になることができます。したがって、操作を実行する前に、ローカルブランチの最新状態を常に確認することが重要です。これは、を使用して、をプルします。

  • 関連する問題