Git - Menangani Konflik

Halo, para pemula pengoding! Hari ini, kita akan mempelajari salah satu keterampilan paling penting dalam pemrograman kolaboratif: menangani konflik di Git. Sebagai guru ilmu komputer yang ramah di lingkungan sekitar Anda, saya di sini untuk mengorbit Anda melalui topik yang kadang-kadang sulit tapi selalu penting ini. Mari kita mulai!

Git - Handling Conflicts

Memahami Konflik Git

Sebelum kita masuk ke dalam hal-hal kecil, mari berbicara tentang apa itu konflik. Bayangkan Anda dan teman Anda keduanya sedang menggambar pada tembok yang sama. Anda memutuskan untuk menggambarinya biru, sedangkan teman Anda menggambarinya merah. Ketika Anda bertemu, Anda menyadari Anda memiliki masalah - itu esensialnya apa yang disebut konflik Git di dunia pemrograman.

Dalam istilah Git, konflik terjadi ketika dua cabang membuat perubahan pada baris yang sama dalam sebuah file, atau ketika sebuah file dihapus dalam satu cabang tetapi diedit dalam cabang lain. Git tidak dapat secara otomatis menentukan perubahan mana yang harus mendahului.

Melakukan Perubahan di Cabang wchar_support

mari mulai dengan contoh praktis. Kita akan membuat cabang baru bernama wchar_support dan membuat beberapa perubahan di sana.

git checkout -b wchar_support

Perintah ini membuat cabang baru dan beralih kepadanya. Sekarang, mari edit file yang disebut hello.c:

#include <stdio.h>

int main() {
printf("Hello, World!\n");
return 0;
}

Kita akan mengubah ini untuk mendukung karakter lebar:

#include <wchar.h>

int main() {
wprintf(L"Hello, Wide World!\n");
return 0;
}

Sekarang, mari kita commit perubahan ini:

git add hello.c
git commit -m "Menambah dukungan karakter lebar"

Bagus! Kita telah membuat perubahan di cabang wchar_support.

Melakukan Perubahan di Cabang Master

Sekarang, mari kembali ke cabang master dan buat perubahan yang berbeda pada file yang sama:

git checkout master

Edit hello.c lagi:

#include <stdio.h>

int main() {
printf("Hello, Beautiful World!\n");
return 0;
}

Dan commit perubahan ini:

git add hello.c
git commit -m "Perbarui pesan salam"

Menangani Konflik

Sekarang, mari kita masukkan cabang wchar_support ke dalam master:

git merge wchar_support

Uhm, masalah! Git kemungkinan akan memberikan Anda pesan seperti ini:

Auto-merging hello.c
CONFLICT (content): Merge conflict in hello.c
Automatic merge failed; fix conflicts and then commit the result.

Jangan panik! Ini adalah hal yang normal. Git hanya mengatakan kepada kita bahwa itu tidak dapat secara otomatis menggabungkan perubahan karena kedua cabang mengubah bagian yang sama dari file.

Menyelesaikan Konflik

Sekarang, mari kita lipat lengan dan selesaikan konflik ini secara manual. Jika Anda membuka hello.c, Anda akan melihat sesuatu seperti ini:

<<<<<<< HEAD
#include <stdio.h>

int main() {
printf("Hello, Beautiful World!\n");
=======
#include <wchar.h>

int main() {
wprintf(L"Hello, Wide World!\n");
>>>>>>> wchar_support
return 0;
}

mari kitauraikan ini:

  • Semua yang berada antara <<<<<<< HEAD dan ======= adalah dari cabang saat ini (master).
  • Semua yang berada antara ======= dan >>>>>>> wchar_support adalah dari cabang yang kita coba gabungkan.

Untuk menyelesaikan konflik, kita perlu memutuskan perubahan mana yang akan dipertahankan. Kita mungkin memutuskan bahwa kita ingin kedua dukungan karakter lebar dan pesan baru. Jadi, kita dapat mengubah file menjadi seperti ini:

#include <wchar.h>

int main() {
wprintf(L"Hello, Beautiful Wide World!\n");
return 0;
}

Setelah diedit, kita perlu menyiapkan file dan commit:

git add hello.c
git commit -m "Merge wchar_support, menjaga kedua dukungan char lebar dan pesan baru"

Selamat! Anda baru saja menyelesaikan konflik Git pertama Anda.

Metode Umum untuk Menyelesaikan Konflik

Berikut adalah tabel praktis metode umum untuk menyelesaikan konflik:

Metode Deskripsi
Tetapkan Saat Ini Pilih perubahan dari cabang saat ini (master)
Tetapkan Masuk Pilih perubahan dari cabang masuk (wchar_support)
Tetapkan Kedua Sertakan perubahan dari kedua cabang
Edit Manual Edit file secara hati-hati untuk menggabungkan perubahan

Ingat, metode terbaik tergantung pada situasi khusus dan kebutuhan proyek Anda.

Kesimpulan

Menangani konflik di Git mungkin terlihat menakutkan pada awalnya, tapi dengan latihan, itu menjadi refleks pertama. Ini adalah keterampilan penting dalam pemrograman kolaboratif, memungkinkan banyak pengembang bekerja pada proyek yang sama tanpa berjalan saling menunggangi (terlalu banyak).

Dalam tahun-tahun mengajar saya, saya telah melihat murid-murid yang berubah dari takut kepada konflik menjadi meraihnya sebagai kesempatan untuk mereview dan meningkatkan kode. Jadi jangan khawatir jika Anda merasa tantangan pada awalnya - Anda berada di jalur yang benar!

Berikut kali Anda menemui konflik Git,ambil nafas dalam,ambil minuman kesukaan Anda, dan ingat: Anda tidak hanya menyelesaikan konflik, Anda menciptakan kreasi kreatif tim Anda. Selamat pemrograman!

Credits: Image by storyset