2015-12-30 7 views
18

をマージ書くように私に尋ねる:Gitのプルは、私が<strong>私のブランチ</strong>から引っ張っメッセージ

git checkout mybranchSample 
git fetch 
git pull origin master 

次に、Gitは私に次のメッセージ得られます

を理由にこれを説明するためにコミットメッセージを入力してくださいマージする必要があります。
特に更新されたアップストリームをトピックブランチにマージする場合

コミットメッセージを入力すると、masterが自分のファイルにマージされます。そして、私がmasterからいくつかのファイルに取り組んでいないのに、git statusとタイプすると、ファイルリストが緑色で表示されます。

この問題は、ではなく、で、私の同僚と一緒に起こっています。 これの背景には何がありますか? git fetchは(あなたは何が起こるかを推測することができ、その場合にはgit pull --rebaseを、使用しない限り)git merge続い:

+8

テキストを表示するために画像(特に大きすぎる画像)を使用しないでください。 –

+0

"show files in Green"はあまり言わない。 – max630

+0

'' 'master''を' 'mybranchSample'''にマージしようとしたのか、' '' master'''に更新したコードをほしいと思っていましたか? –

答えて

19

git pullは、基本的には、一度に2つのアクションです。

あなたがこれを見ている理由は、ほとんどの場合と同じように、Gitが早送りマージを実行できないためです。その理由は通常、あなたが引き出しようとしているブランチにローカルでgit commitを割り当てているからです。そして、あなたはローカルのものとリモートの変更をマージする必要があります。

Gitはあなたにマージメッセージをあらかじめ入力しているので、何も入力する必要はありません。保存して終了するだけで、マージが完了するはずです。 (もちろん、マージの競合がない限り)。

+0

私の主な質問は「それについて心配する必要はありますか?私はまだウィンドウを取得し、いくつかのメッセージを入力して何か間違ったことが起こりますか? –

+0

@PratikCJoshiいいえ、あなたは何も心配する必要はありません。 –

+0

@MadaraUchihaすべての人がGitの設定ファイル 'ホストgitserver ユーザーのgit ホスト名91.12.12.12 ポート22 IdentityFileにの〜/ .ssh/pratikj'で同じコンテンツを持っているのに、なぜ私だけがエラーを取得しています任意のアイデア? –

3

mastermybranchSampleブランチにマージしようとすると、これは完全に正常です。

Gitは(あなたがmybranchSampleブランチからgit pull origin masterをしたとき)mybranchSamplemasterをマージし、commitsあなたのためのマージの変更を(矛盾がある場合を除く)、あなたに事前にメッセージを表示します。保存して終了することができます。あなただけのローカルmasterブランチにマージするリモートmaster支店から最新のコードを取得しようとしていた場合は

しかし、あなたはmasterに出てチェックアウトし、その後masterから引く必要があります。それは私のファイルにマスターファイルをマージあなたの文

から

。そして、私はマスターからのいくつかのファイルを扱っていませんが、gitステータスを入力すると、ファイルリストがGreenで表示されます。

私はあなたが2番目のことをやろうとしていると思います。

ので、試してみてください。

git checkout master 
git pull origin master 
17

Linus Torvalds氏は、最高のそれを説明する:

私は が大きく非難するんだから、今度の 'gitの' UIの変更についての言葉を広めます。

この変更は、うまくいけば、人々は 自分のマージを説明するメッセージをマージし、そして多分それが必要 ないときに、すべてのマージしないことを決定書きます。

彼ら(まあ、少なくとも場合submainterは私にいずれかを与えた)私は今、最後の数週間のためにそのGitの機能を使用してきた、そしてそれ はsubmaintainersが で様々なノートを持っていることから、私のマージをもたらしました。だから私は 先を見越そうとしている。

あなたのマージについて説明したくない場合は、これは迷惑かもしれません。 もちろん、あなたのマージを説明しなければ、あなたは迷惑です。だから、最後に がすべて消えます。 "Karmic balance"と言います。

出典:https://plus.google.com/+LinusTorvalds/posts/SrePhcj6XJe

2

これが唯一のあなたに起こっている理由は、あなたの設定が異なることはありませんが、あなたがマージしている枝は異なっていること。

diffのファイルが変更されなかった理由は、マージ後に新しいコミットが親にコミットすることです。最後に行ったコミットとmasterでの最新のコミットです。新しいコミットには、すべての変更/ファイルが含まれています。したがって、から新しいからへの最後のコミットから変更した場合、ブランチがマスターブランチと同期していない間に変更/追加されたすべてのファイルがマスターに追加/追加されます。 - あなたがリモートブランチ、mybranchSampleを持っており、その上にあなたたい仕事)

1:

3

私はあなたが直面している枝の問題...私は想像できる2つの可能なシナリオを持っていると思いますマスターブランチで現時点で行うことは何もありません(つまり、ブランチをマスターにマージしたり、ブランチをマージしたくない場合)。あなたは私のようなフェッチ後私のブランチからプルを取るとき...あなたの質問

を言うしかし、あなたがやっていることはマスターから引っ張る、git pull origin masterです。代わりに、あなたはあなたがmybranchSample上で動作するようにしようとしたがたいが、masterブランチから最新のコードを持っている)

git fetch 
git checkout mybranchSample 

2を使用してリモートブランチをチェックアウトし、gitのバージョン> = 1.6.6で、できるはずですそこ。それで、Anand Sが言ったように、併合が必要かもしれないということは意味をなさない。

関連する問題