Seperti yang Anda catat, HEAD
adalah label yang mencatat di mana Anda berada di pohon komit. Itu bergerak bersama Anda ketika Anda berpindah dari satu komitmen ke komitmen lainnya. git checkout <commit>
adalah mekanisme dasar untuk bergerak di sekitar pohon komit, memindahkan fokus Anda ( HEAD
) ke komit yang ditentukan.
Komit dapat ditentukan oleh salah satu dari sejumlah cara, melakukan hash, nama cabang, nama tag, sintaks relatif ( HEAD^
, HEAD~1
, dll) dan sebagainya. Seringkali berguna untuk mempertimbangkan checkout sebagai berganti cabang, dan ada beberapa opsi yang bekerja dari perspektif itu, tetapi semuanya mereferensikan komit.
Untuk menyelesaikan sebuah komit memiliki beberapa pengaruh sisi selain bergerak HEAD
.
- Direktori kerja diperbarui ke status komit yang diperiksa.
- jika nama cabang ditentukan, checkout membuat cabang itu aktif. Cabang aktif akan bergerak seiring dengan komit baru yang ditambahkan.
- dengan
-b
opsi cabang baru akan dibuat berdasarkan komit saat ini dan kemudian dibuat aktif.
- dengan
--track
opsi, cabang yang diperiksa dapat diberi tahu tentang cabang jarak jauh
- dengan
--orphan
opsi cabang baru dibuat (seperti dengan -b
) tetapi tidak akan didasarkan pada komit yang ada.
Ada beberapa opsi lagi, yang dapat Anda baca di halaman manual git checkout , yang semuanya berputar dari satu komit ke komit lainnya - hanya berbeda dalam efek apa yang dimiliki pemindahan selain pemindahan HEAD
.