`git fetch origin`と` git remote update origin`の違いは何ですか?


115

応じて、1は、gitリポジトリから一度にコミット引っ張っについての質問、私が使用することを推奨されたgit remote update代わりにgit fetch。両方のmanページを読みましたが、どちらも完全に理解したとは言えません。

誰かが私にどのように説明しgit fetch originget remote update origin異なる行動を取ることができますか?


回答:


133

このように使用しても違いはありません。

remote updateこれは非常に高レベルのコマンドです。グループ化されたリモート(remotes.<group> = <list>)をサポートし、すべてのリモート(remote.<name>.skipDefaultUpdateセット付きのものを除く)を更新しますが、より具体的なフェッチオプションはありません。ただし、内部的には、デフォルトのオプションでフェッチとまったく同じことを行います。

remote updategit fetchの代わりに推奨する答えは、引数として指定されたものだけでなく、すべてをフェッチするためだけに、実際にはリモート名なしでそれを推奨することでした。これはと同等git fetch --allです。

フェッチとリモート更新は実際にはv1.6.6.1(2009年12月23日リリース)まで同じコードパスを使用しなかったという警告を追加する必要があります。それ以前でも、基本的には同じことを行い、異なるコードを使用しただけです(コーナーケースでは動作がわずかに異なる可能性がありますが、頭上にあるものは考えられません)。


1
とても興味深い。+1。あなたは(私はここにコンパイルされていること:Gitのリリースノートを見ればpastebin.com/LNhRhQS3を)、「できますのみ1.7.0(ちょうど1.6.6.2後)ようだgit fetch --all」の代わりに使用されるように「git remote update」。
VonC 2010

ときああ、私は実際にチェックしていなかったfetch --allに行ってきました。私はただの変動により、すべてこれを行うgit log --grep=...git describe --contains、私のgit.gitクローンで。
カスカベル2010

ええと、それは奇妙です-コミット9c4a036bは「--allオプションを 'git fetch'に教える」で、git describe --containsはを提供しv1.6.6.1~1^2~9ます。(私の回答で述べたリモート更新の変更と同じリリースで、そこにマイナーリリースバージョンを追加するために更新されました)。たぶん、リリースノートに入るのが遅かったのでしょうか?
Cascabel 2010

@Jefromi:その情報を掘り下げるのにいい方法ですが、私は最初にリリースノートを確認することを好み、すべてのリリースノートの1ページが不足しているため、ペーストビンに私の小さなコピーアンドペーストすることに不満を感じました。
VonC 2010

@Jefromi:そう...今、私は1.7より前の公式リリースでcommit 9c4a036bがうまくいかなかった理由を確認するために、すべての「Gitでの料理」を集約する方法を見つける必要があります;)
VonC
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.