2016-02-24 5 views
5

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!ここに私が得ると予想されるマージ競合があった!

これは私を困惑させました。私はpullorigin/masterから私の現在のブランチに実行することはmasterをチェックアウトすることと同じであると仮定していましたが、他のブランチをチェックして、masterを現在のブランチにマージしました(例外として、masterを別のブランチにプルすると、ローカルmasterが、この問題には影響しないはずです)。 feat-a

基本的に、origin/masterから何らかの理由でpullコマンドはorigin/masterに変更がないことを私を説得しようとしていた、そして予想通りブランチのみと手動のマージを切り替えると長い道のりが働いていました。

SourceTreeがこの問題に影響する可能性のある特別な処理を行っているかどうかはわかりません。

+0

ローカルマシンに私の 'Herokuののbranch'にGithubの'マスターbranch'からコードを引きながら私も昨日、この問題に直面していましたが、それはあなたのブランチが最新であると述べ、その後、あなたは上記しているどのような手順に従いました。私はそれがバグだったに違いないと思った。 – sahil

+0

トラッキングがあなたの考えであることを確認してください。 'git branch -avv'は各ローカルブランチに対してどのリモートブランチが追跡されているかを表示します。どういうわけか 'master'は' origin/master'以外のものを追跡しています。 –

答えて

1

あなたがSourcetreeを使用すると言うので、私はあなたが実際にコマンドラインでgit pull origin masterを入力していなかったと思います。私の推測では、GUIメッセージで混乱しているものか、Sourcetreeのバグです。

私はSourcetree開発者にお尋ねしたいと思います。

+0

はい、そうかもしれません。私はSourceTreeを更新した後、今日この問題を経験しました。以前はこのような問題はなかったので、これはSourceTreeの新しいバグかもしれません。私は今日それを再現しようとします。 – JustAMartin

+0

あなたは正しいです。私と私の同僚の一部がこのバグの犠牲者になりました:https://jira.atlassian.com/browse/SRCTREEWIN-4329これは、GUIツールをあまりにも信頼する価格だと思います。 – JustAMartin

関連する問題