git pull origin master
コマンドでは、どのような場合でも、git checkout master
- >git pull
- >git checkout feat-a
- >git merge master
と異なる作業コピーの状態になることがありますか?`git pull`がリモート変更を見逃す原因は何でしょうか?
長い話です。
私は機能ブランチを持って、feat-a
それを呼び出すことができます。私はこのブランチで作業している唯一の開発者です。ブランチはmaster
ブランチから作成されました。両方の分岐は、リモート起点、origin/feat-a
およびorigin/master
を持ちます。何も特別な、あなたの典型的なgitリポジトリの配置。
今日は私がリモートmaster
から私の機能ブランチを更新したかったです。以前の他の開発者とのコミュニケーションから、リモートmaster
を私のフィーチャーブランチにマージすると、矛盾する変更があることを知っていました。
私はSourceTreeを使用しています。そこで、feat-a
ブランチをチェックアウトして、origin/masterブランチのコンテキストメニューを開き、Pull origin/master into current branch
を選択しました。 Gitが私の支店がすでに最新であると報告していることにショックを受けました。私はそれが正しくないことを知っていた、リモートmaster
支店の変更が必要です。私は数回コマンドを繰り返しました。いつも同じ最新のメッセージを受け取りました。
100%確かめるために、私はそれを "長い道のり"でした。私はmaster
ブランチをチェックし、Pull
ボタンをクリックしました。ブランチは最新のコミットで更新されました。その後、私はfeat-a
ブランチをチェックアウトし、マスターブランチのコンテキストメニューを取り出し、Merge master into current branch
を選んだ。 Voila!ここに私が得ると予想されるマージ競合があった!
これは私を困惑させました。私はpull
をorigin/master
から私の現在のブランチに実行することはmaster
をチェックアウトすることと同じであると仮定していましたが、他のブランチをチェックして、master
を現在のブランチにマージしました(例外として、master
を別のブランチにプルすると、ローカルmaster
が、この問題には影響しないはずです)。 feat-a
に
基本的に、origin/master
から何らかの理由でpull
コマンドはorigin/master
に変更がないことを私を説得しようとしていた、そして予想通りブランチのみと手動のマージを切り替えると長い道のりが働いていました。
SourceTreeがこの問題に影響する可能性のある特別な処理を行っているかどうかはわかりません。
ローカルマシンに私の 'Herokuののbranch'にGithubの'マスターbranch'からコードを引きながら私も昨日、この問題に直面していましたが、それはあなたのブランチが最新であると述べ、その後、あなたは上記しているどのような手順に従いました。私はそれがバグだったに違いないと思った。 – sahil
トラッキングがあなたの考えであることを確認してください。 'git branch -avv'は各ローカルブランチに対してどのリモートブランチが追跡されているかを表示します。どういうわけか 'master'は' origin/master'以外のものを追跡しています。 –