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


