Branch yang sudah dipahami modelnya kini dapat dioperasikan. Topik ini membahas siklus lengkapnya: membuat branch dengan git branch, berpindah posisi kerja dengan git switch, membuat branch sekaligus berpindah dengan git switch -c, dan menghapus branch yang tugasnya selesai. Perintah lama git checkout yang memikul keduanya juga diperkenalkan agar keluaran dokumentasi lama tetap terbaca.
Membuat branch tanpa berpindah#
Perintah git branch nama membuat penunjuk baru tanpa mengubah posisi kerja. Siapkan repository latihan dengan satu commit dasar, lalu buat branch pertama.
# tanggal commit ditetapkan agar keluaran contoh dapat direproduksi secara persis
export GIT_AUTHOR_DATE="2026-11-01T09:00:00+07:00"
export GIT_COMMITTER_DATE="2026-11-01T09:00:00+07:00"rm -rf /tmp/lab-switch
mkdir /tmp/lab-switch
cd /tmp/lab-switch
git init -b main
git config user.name "Budi"
git config user.email "[email protected]"
printf "Menu utama.\n" > app.txt
git add app.txt
git commit -m "Menu utama"
git branch fitur-sapa
git branchInitialized empty Git repository in /tmp/lab-switch/.git/
[main (root-commit) f32eeb1] Menu utama
1 file changed, 1 insertion(+)
create mode 100644 app.txt
fitur-sapa
* mainDaftar git branch menampilkan kedua branch dengan tanda bintang pada yang aktif. Pada titik ini kedua branch masih menunjuk commit yang sama, dan pekerjaan berlanjut di main apabila tidak ada perpindahan dilakukan.
Berpindah dengan git switch#
Perintah git switch memindahkan HEAD ke branch tujuan dan menyesuaikan isi working directory. Pindah ke fitur-sapa, buat commit di sana, lalu kembali ke main dan amati perbedaannya.
git switch fitur-sapa
printf "Menu utama.\nSapa pengguna saat masuk.\n" > app.txt
git commit -am "Tambah sapaan saat masuk"
git switch main
lsSwitched to branch 'fitur-sapa'
[fitur-sapa a034bca] Tambah sapaan saat masuk
1 file changed, 1 insertion(+)
Switched to branch 'main'
app.txtIsi app.txt pada main tidak memuat sapaan baru, karena commit itu dibuat di atas fitur-sapa. Kedua branch kini menunjuk commit yang berbeda, dan berpindah branch benar-benar mengganti keadaan berkas yang terlihat. Perintah git log --oneline --all menampilkan kedua jalur tersebut sekaligus, sedangkan git log biasa hanya menampilkan riwayat branch aktif.
git log --oneline --alla034bca Tambah sapaan saat masuk
f32eeb1 Menu utamaMembuat sekaligus berpindah#
Kombinasi git branch lalu git switch begitu sering dipakai sehingga tersedia bentuk ringkasnya, yaitu git switch -c (create).
git switch -c fitur-cepat
git switch mainSwitched to a new branch 'fitur-cepat'
Switched to branch 'main'Branch fitur-cepat dibuat dari posisi saat itu, yaitu commit terakhir main, dan posisi kerja langsung berpindah ke sana. Perintah lama yang setara adalah git checkout -b fitur-cepat, yang masih didukung dan masih banyak muncul pada dokumentasi lama. Perbedaan konsepnya penting untuk dibaca ulang: git switch hanya berpindah atau membuat branch, sedangkan git checkout juga dapat menarik isi berkas dari commit mana pun, sehingga kesalahan pengetikan pada checkout dapat menimpa berkas kerja.
Dua bentuk ringkas lain yang sering memangkas pengetikan adalah git switch - untuk kembali ke branch yang dikunjungi sebelumnya, dan git switch -c nama HEAD~1 untuk membuat branch yang titik awalnya bukan commit terakhir, melainkan commit lama mana pun. Keduanya memakai mekanisme penunjuk yang sama, hanya argumennya yang berbeda.
Berpindah dengan perubahan yang menggantung#
Pertanyaan yang muncul segera setelah siklus perpindahan dipraktikkan adalah apa yang terjadi pada perubahan yang belum di-commit. Git memeriksa dulu apakah berkas yang berubah sama-sama disentuh oleh perpindahan. Apabila tidak, perubahan yang menggantung ikut terbawa ke branch tujuan tanpa di-commit, dan git status tetap menampilkannya di sana.
Apabila berkas yang sama berubah di kedua sisi, Git menolak perpindahan dan melindungi pekerjaan.
printf "Menu utama.\nCatatan samping.\n" > app.txt
git switch fitur-sapaerror: Your local changes to the following files would be overwritten by checkout:
app.txt
Please commit your changes or stash them before you switch branches.
AbortingPesan error menyebut berkas yang berpotensi tertimpa dan menawarkan dua jalan, yaitu men-commit perubahan atau menyimpannya sementara melalui git stash. Pada titik ini keputusan yang sehat biasanya adalah commit, karena commit kecil murah dan menjadi titik pemulihan, sedangkan stash menunggu pekerjaan yang memang belum siap tampil di riwayat. Perpindahan yang ditolak tidak mengubah apa pun, sehingga aman dicoba untuk mengecek keadaan.
Menghapus branch#
Branch yang sudah digabungkan atau memang tidak jadi dilanjutkan dihapus dengan git branch -d. Git menolak menghapus branch yang belum tergabung, dan menolaknya itu merupakan pengaman yang berharga.
git branch -d fitur-cepat
git branch -d fitur-sapaDeleted branch fitur-cepat (was f32eeb1).
error: the branch 'fitur-sapa' is not fully merged
hint: If you are sure you want to delete it, run 'git branch -D fitur-sapa'
hint: Disable this message with "git config advice.forceDeleteBranch false"Pesan error menyatakan bahwa fitur-sapa memuat commit yang belum ada di branch lain, dan Git menawarkan opsi -D untuk memaksa penghapusan. Commit di atas fitur-sapa tidak langsung hilang saat branchnya dihapus, karena objek commit tetap tersimpan dan dapat ditemukan kembali melalui reflog, tetapi penunjuk bergeraknya sudah tidak ada sehingga pemulihannya memerlukan langkah sadar. Keputusan yang aman: hapus dengan -d setelah penggabungan, dan pakai -D hanya ketika membuang pekerjaan memang disengaja.
Ringkasan#
git branch namamembuat penunjuk baru tanpa berpindah, sedangkangit switch namaberpindah dan menyesuaikan working directory.git switch -cmembuat branch sekaligus berpindah, dangit checkout -badalah bentuk lamanya.- Commit di atas sebuah branch hanya terlihat oleh branch tersebut sampai penggabungan dilakukan.
git branch -dmenolak menghapus branch yang belum tergabung, dan-Dmengabaikan pengaman itu.
Referensi#
- git-switch — Git Documentation — rujukan perintah perpindahan branch modern.
- Git Branching - Basic Branching and Merging — Pro Git — bab Pro Git tentang siklus membuat, berpindah, dan menghapus branch.