Oke pertama kita buat repository, disini saya membuata repo di working area pada D:\belajar\git\branch-merge untuk kalian buat repo dimana saja boleh. Setelah itu masuk ke folder reponya kemudian klik kanan terus pilih Git Bash Here atau menggunakan CLI apapun yang terinstall git juga boleh.
Inisialisasi repo git
Buat file mahasiswa.html
Cek Status perubahan repo
Lanjutkan add dan commit file mahasiswa.html
Selanjutnya Coba lakukan perubahan di file mahasiswa.html
Selanjutnya lakukan add dan commit,, sebenarnya kalau posisi file sudah modified/sudah bukan diposis untracked bisa gunakan command "git commit -am "pesan_commit"
Implementasi Branch Dalam Implementasi branch ada yang namanya disebut "head" yang dijadikan sebagai pointer atau penanda branch yang sedang sedang aktif. Ayo kita coba bikin branch baru dengan nama dosen dan staff
Sebenarnya kita bisa melihat perjalanan branch kita dari sebuah graph
Perintah ini kedepannya akan sering kita gunakan, karena commandnya agak panjang kita bisa inisialisasi dengan alias supaya lebih praktis
Oke sekarang kita coba berpindah dari branch master ke branch dosen
Tambahkan file dosen.html di working area atau di folder local
Seperti biasa cek status untuk melihat perubahan yang terjadi di repo kemudian add dan commit
Oke sekarang posisi di branch dosen terdapat 2 file mahasiswa.html dan dosen.html. Namun jika coba balik ke brach master maka seharusnya filenya masih mahasiswa.html
Coba perhatikan baik baik capture diatas, ketika balik checkout ke branch master file dosen.html jadi hilang karena file tersebut terdapat hanya di branch dosen
Coba perhatikan baik baik capture diatas, ketika balik checkout ke branch dosen file dosen.html jadi ada lagi
Coba kita cek perubahan posisi head sekarang dimana branch dosen lebih maju diatas branch master
Buat file staff.html di branch staff
Selanjutny seperti biasa di add, commit, kemudian perhatikan perubahan graph
Implementasi Merge Merge di menjadi 2 jenis yaitu Fast Forward(branch yang ingin kita gabungkan berada pada jalur langsung/direct path) dan Three-way Merge(merge commit, sambil merge sambil bikin commit baru). Sekarang kita pindahkan dulu branch ke master kemudian lakukan merge
"Updating a6d124e..74fc326" artinya ada update di id hashnya branch master | "Fast-forward" artinya sudah terjadi fast forward merging | " dosen.html | 13 +++++++++++++" artinya ada penambahkan 13 baris dari file dosen.html | "1 file changed, 13 insertions(+)" artinya ada perubahan di sebuah file yaitu penambahan file dosen yang berisi 13 baris
Coba kita cek di foldernya seharusnya jika kalian berada di branch master sudah ada 2 file yaitu mahasiswa.html dan dosen.html
Kalau ingin mengetahui branch mana yang sudah di merge
Karena branch dosen sudah tidak terpakai maka branchnya bisa di hapus saja
Branch yang kita miliki sekarang tinggal master dan staff, misalnya kita ingin hapus branch staff yang belum di merge
"error: The branch 'staff' is not fully merged" artinya branch staff belum dilakukan merge jadi nggak boleh dihapus | "If you are sure you want to delete it, run 'git branch -D staff" artinya jika kalian ingin tetep menghapusnya secara paksa tanpa merge terlebih dahulu maka gunakan command "git branch -D staff"
Coba kita jalankan alias graph supaya lihat cabang branch nya
Jadi antara branch staff dan branch yang hasil baranch master terpisah tidak terhubung langsung makannya ini di nakamakan tree way merge sehingga nanti akan selain commit akan melakukan commit ( Selalu diingat jika commit akan membuat hash baru dan biasanya diminta mengisi keterangan commitnya )
Jika kalian diarahkan ke editor vim atau editor lainnya untuk memasukkan pesan commitnya, lanjutakan dengan save file editornya untuk vim bisa tekan tombol Esc+:+wq! | "Merge made by the 'recursive' strategy." ini penanda merge yang kita lakukan adalah Try way merge
Coba kita cek graph
Dapat kita lihat bahwa sudah ada commit baru yang menggabungkan branch staff ke master
Jika Kita cek ke foldernya adalah dengan branch master sudah ada 3 file(mahasiswa.html, dosen.html, staff.html)
Sekarang kita bisa cek file apakah benar staff sudah merge ke master dengan command"git branch --merged", kemudian hapus saja branch staff dengan command "git branch -d staff"
Demikian pembelajaran yang udah kita bahas step by step dan case by case terkait brach dan merge semoga kita semakin mengerti cara menggunakan tool git.