Tutorial Git


Git dan {{title}}


Git Berkontribusi


Git Lanjutan


Git Undo




Penggabungan Cabang Git


Gabungkan Cabang

Kami telah menyiapkan perbaikan darurat, jadi mari gabungkan cabang master dan perbaikan darurat.

Pertama, kita perlu mengubah ke cabang master:

Contoh

git checkout master
Switched to branch 'master'

Sekarang kami menggabungkan cabang saat ini (master) dengan perbaikan darurat:

Contoh

git merge emergency-fix
Updating 09f4acd..dfa79db
Fast-forward
 index.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Karena cabang perbaikan darurat datang langsung dari master, dan tidak ada perubahan lain yang dibuat untuk master saat kami bekerja, Git melihat ini sebagai kelanjutan dari master. Jadi itu bisa "Maju cepat", hanya dengan mengarahkan master dan perbaikan darurat ke komit yang sama.

Karena master dan perbaikan darurat pada dasarnya sama sekarang, kami dapat menghapus perbaikan darurat, karena tidak lagi diperlukan:

Contoh

git branch -d emergency-fix
Deleted branch emergency-fix (was dfa79db).

Gabungkan Konflik

Sekarang kita bisa pindah ke hello-world-images dan terus bekerja. Tambahkan file gambar lain (img_hello_git.jpg) dan ubah index.html, jadi ini menunjukkannya:

Contoh

git checkout hello-world-images
Switched to branch 'hello-world-images'

Contoh

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="bluestyle.css">
</head>
<body>

<h1>Hello world!</h1>
<div><img src="img_hello_world.jpg" alt="Hello World from Space" style="width:100%;max-width:960px"></div>
<p>This is the first file in my new Git Repo.</p>
<p>A new line in our file!</p>
<div><img src="img_hello_git.jpg" alt="Hello Git" style="width:100%;max-width:640px"></div>

</body>
</html>

Sekarang, kita sudah selesai dengan pekerjaan kita di sini dan dapat melakukan stage dan commit untuk cabang ini:

Contoh

git add --all
git commit -m "added new image"
[hello-world-images 1f1584e] added new image
 2 files changed, 1 insertion(+)
 create mode 100644 img_hello_git.jpg

Kami melihat bahwa index.html telah diubah di kedua cabang. Sekarang kita siap untuk menggabungkan hello-world-images menjadi master. Tapi apa yang akan terjadi dengan perubahan yang baru-baru ini kita buat di master?

Contoh

git checkout master
git merge hello-world-images
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.

Penggabungan gagal, karena ada konflik antara versi untuk index.html. Mari kita periksa statusnya:

Contoh

git status
On branch master
You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Changes to be committed:
        new file:   img_hello_git.jpg
        new file:   img_hello_world.jpg

Unmerged paths:
  (use "git add <file>..." to mark resolution)
        both modified:   index.html

Ini menegaskan ada konflik di index.html, tetapi file gambar sudah siap dan dipentaskan untuk dikomit.

Jadi kita perlu memperbaiki konflik itu. Buka file di editor kami:

Contoh

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="bluestyle.css">
</head>
<body>

<h1>Hello world!</h1>
<div><img src="img_hello_world.jpg" alt="Hello World from Space" style="width:100%;max-width:960px"></div>
<p>This is the first file in my new Git Repo.</p>
<<<<<<< HEAD
<p>This line is here to show how merging works.</p>
=======
<p>A new line in our file!</p>
<div><img src="img_hello_git.jpg" alt="Hello Git" style="width:100%;max-width:640px"></div>
>>>>>>> hello-world-images

</body>
</html>

Kita dapat melihat perbedaan antara versi dan mengeditnya seperti yang kita inginkan:

Contoh

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="bluestyle.css">
</head>
<body>

<h1>Hello world!</h1>
<div><img src="img_hello_world.jpg" alt="Hello World from Space" style="width:100%;max-width:960px"></div>
<p>This is the first file in my new Git Repo.</p>
<p>This line is here to show how merging works.</p>
<div><img src="img_hello_git.jpg" alt="Hello Git" style="width:100%;max-width:640px"></div>

</body>
</html>

Sekarang kita dapat menampilkan index.html dan memeriksa statusnya:

Contoh

git add index.html
git status
On branch master
All conflicts fixed but you are still merging.
  (use "git commit" to conclude merge)

Changes to be committed:
        new file:   img_hello_git.jpg
        new file:   img_hello_world.jpg
        modified:   index.html

Konflik telah diperbaiki, dan kita dapat menggunakan commit untuk menyimpulkan penggabungan:

Contoh

git commit -m "merged with hello-world-images after fixing conflicts"
[master e0b6038] merged with hello-world-images after fixing conflicts

Dan hapus cabang hello-world-images:

Contoh

git branch -d hello-world-images
Deleted branch hello-world-images (was 1f1584e).

Sekarang Anda memiliki pemahaman yang lebih baik tentang cara kerja cabang dan penggabungan. Saatnya mulai bekerja dengan repositori jarak jauh!

Uji Diri Anda Dengan Latihan

Olahraga:

Gabungkan hello-youcabang dengan cabang saat ini:

git  hello-you