Saya selalu memikirkan git reset
dan git checkout
sama, dalam arti bahwa keduanya membawa proyek kembali ke komitmen tertentu. Namun, saya merasa mereka tidak bisa persis sama, karena itu akan berlebihan. Apa perbedaan yang sebenarnya antara keduanya? Saya agak bingung, karena svn hanya svn co
perlu mengembalikan komit.
TAMBAH
VonC dan Charles menjelaskan perbedaan antara git reset
dan git checkout
sangat baik. Pemahaman saya saat ini adalah bahwa git reset
mengembalikan semua perubahan kembali ke komit tertentu, sedangkan git checkout
kurang lebih mempersiapkan cabang. Saya menemukan dua diagram berikut cukup berguna untuk sampai pada pemahaman ini:
TAMBAH 3
Dari http://think-like-a-git.net/sections/rebase-from-the-ground-up/using-git-cherry-pick-to-simulate-git-rebase.html , checkout dan reset dapat ditiru rebase itu.
git checkout bar
git reset --hard newbar
git branch -d newbar
-- files
varian; Saya tidak yakin.) Diagram yang membuatnya tampak seperti perbedaan utama adalah apakah mereka mempengaruhi indeks atau WD. Lihat jawaban saya tentang itu. Diagram 2 dan 3 sangat membantu untuk melihat perbedaan nyata. Diagram ke-4 dan ke-5 berguna untuk memeriksa apakah Anda memahami apa yang dilakukan perintah-perintah ini, tetapi tidak akan benar-benar membantu Anda sampai di sana.
think-like-a-git.net
artikel yang ditautkan ) diperlukan untuk mencegah hilangnya data.