どちらもプロジェクトを特定のコミットに戻すという意味で、私は常に と を同じものと考えてきましgit reset
た。git checkout
ただし、冗長になるため、まったく同じにすることはできないと思います。両者の実際の違いは何ですか?svn co
svnはコミットを元に戻すだけなので、少し混乱しています。
追加した
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