2017-12-06 13 views
0
次のコマンドを何

は行いますgit fetchの後にcheckout FETCH_HEADが何をするのですか?

git fetch <remote> <branch> && git checkout FETCH_HEAD 

私は唯一のローカルブランチ(master)を持っていると私は、上記のコマンドを実行します。私のローカルリポジトリにどのような変更が必要なのですか?どのように確認できますか?

+0

[This](https://stackoverflow.com/questions/9237348/what-does-fetch-head-in-git-mean)が役立つ可能性があります。 –

答えて

3

おそらくコマンドの最初の部分が何をするのか分かっているでしょう。 git fetch <remote> <some_branch>は、指定したブランチのローカルトラッキングブランチを更新します。しかし、これはあなたのマシン上の実際のローカル対応some_branchを変更しません。

git fetchを実行すると、Gitにはちょうどフェッチされたブランチを指すFETCH_HEADという特別なリファレンスがあります。この場合、これはちょうどフェッチされたブランチであるため、remote/some_branchを指します。

git checkout FETCH_HEAD 

を行うことによって、あなたはデタッチHEAD状態でorigin/some_branchをチェックアウトすることになります。これはあなたが意図するものではないかもしれませんが、いずれの場合でも複合コマンドはローカルsome_branchを実際に更新しません。これを行うには、追加のgit mergeのステップが必要です。git pullsome_branchから行うだけです。

+0

いくつかの点:(1)私は "ローカルトラッキングブランチ"を持っているとは思わない。 "git branch -r"(フェッチの前と後)を実行すると、私がフェッチしているブランチが表示されません。 (2) "git checkout FETCH_HEAD"コマンドの説明を理解しているかどうか分かりません。このコマンドを実行すると、ちょうどフェッチしたリモートブランチの「ローカルコピー」に行きますか? – Roman

+0

Um ...あなたは確かにローカルな追跡ブランチを持っています。そうしないと、フェッチ/プルができなくなります。 'git branch -a'と入力すると、ローカルブランチとトラッキングブランチが表示されます。 'git checkout FETCH_HEAD'を実行すると、分離されたHEAD状態のローカル追跡ブランチをチェックアウトします。私が使っている用語のいくつかがあなたに慣れていない場合は、Git用語で頻繁に出てくるので、それらを研究してください。 –

関連する問題