は行いますgit fetchの後にcheckout FETCH_HEADが何をするのですか?
git fetch <remote> <branch> && git checkout FETCH_HEAD
私は唯一のローカルブランチ(master
)を持っていると私は、上記のコマンドを実行します。私のローカルリポジトリにどのような変更が必要なのですか?どのように確認できますか?
は行いますgit fetchの後にcheckout FETCH_HEADが何をするのですか?
git fetch <remote> <branch> && git checkout FETCH_HEAD
私は唯一のローカルブランチ(master
)を持っていると私は、上記のコマンドを実行します。私のローカルリポジトリにどのような変更が必要なのですか?どのように確認できますか?
おそらくコマンドの最初の部分が何をするのか分かっているでしょう。 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 pull
をsome_branch
から行うだけです。
いくつかの点:(1)私は "ローカルトラッキングブランチ"を持っているとは思わない。 "git branch -r"(フェッチの前と後)を実行すると、私がフェッチしているブランチが表示されません。 (2) "git checkout FETCH_HEAD"コマンドの説明を理解しているかどうか分かりません。このコマンドを実行すると、ちょうどフェッチしたリモートブランチの「ローカルコピー」に行きますか? – Roman
Um ...あなたは確かにローカルな追跡ブランチを持っています。そうしないと、フェッチ/プルができなくなります。 'git branch -a'と入力すると、ローカルブランチとトラッキングブランチが表示されます。 'git checkout FETCH_HEAD'を実行すると、分離されたHEAD状態のローカル追跡ブランチをチェックアウトします。私が使っている用語のいくつかがあなたに慣れていない場合は、Git用語で頻繁に出てくるので、それらを研究してください。 –
[This](https://stackoverflow.com/questions/9237348/what-does-fetch-head-in-git-mean)が役立つ可能性があります。 –