私はいつも考えてきたgit reset
とgit checkout
の両方の特定のコミットにプロジェクトのバックを持っているという意味で、同じよう。ただし、冗長になるため、完全に同じにすることはできません。2つの実際の違いは何ですか?svn svn co
はコミットを元に戻すだけでよいので、少し混乱しています。
追加された
VonCとCharlesは、との違いgit reset
をgit checkout
非常によく説明しました。私が現在理解しているのは、git reset
すべての変更を特定のコミットに戻すことgit checkout
ですが、ブランチの準備は多かれ少なかれ行っています。この理解を深めるには、次の2つの図が非常に役立つことがわかりました。
追加3
http://think-like-a-git.net/sections/rebase-from-the-ground-up/using-git-cherry-pick-to-simulate-git-rebase.htmlから、チェックアウトとリセットでエミュレートできますリベース。
git checkout bar
git reset --hard newbar
git branch -d newbar
-- files
バリアントに関しては問題ないかもしれませんが、わかりません。)この図は、主な違いがインデックスとWDのどちらに影響するかを示しているように見えます。それに関する私の答えを見てください。2番目と3番目の図は、実際の違いを確認するのに非常に役立ちます。4番目と5番目の図は、これらのコマンドの機能を理解しているかどうかを確認するのに役立ちますが、実際の目的には役立ちません。
think-like-a-git.net
、データの損失を防ぐために追加の手順(リンクされた記事で提供)が必要であることに注意してください。