Bagaimana saya bisa memperbarui cabang saya dengan master dengan git?

126

Saya memiliki perbaikan bug di master saya, dan saya juga ingin cabang saya untuk memperbaiki bug itu. Apa gitperintah yang saya gunakan?

Nic Hubbard
sumber

Jawaban:

172

Dengan asumsi Anda baik-baik saja dengan mengambil semua perubahan pada master, yang Anda inginkan adalah:

git checkout <my branch>

untuk memindahkan pohon yang bekerja ke cabang Anda; kemudian:

git merge master

untuk menggabungkan semua perubahan master dengan Anda.

John Doty
sumber
5
Dan ini hanya menambahkan perubahan dari tuanku ke cabang saya, dan meninggalkan tuan itu sendiri, benar?
Nic Hubbard
3
@Nic - Ini akan membawa semua komitmen dari master, bukan hanya perbaikan bug. Pastikan jika ini yang ingin Anda lakukan.
manojlds
12
@Nic - Benar, ini tidak memodifikasi master.
John Doty
16
Mungkin baik untuk merekomendasikan "master checkout git awal; tarik git" untuk memastikan bahwa cabang master lokal terbaru. Biasanya jelas, tetapi ...
MikeW
Sebagai pintasan master checkout / gabung, dapatkah Anda melakukan "git pull origin master" untuk menarik master server / gabung ke cabang check-out lokal?
user1172173
66

Jika cabang Anda hanya lokal dan belum didorong ke server, gunakan

git rebase master

Kalau tidak, gunakan

git merge master
Chetan
sumber
18
Karena itu memodifikasi histori komit, dan Anda tidak ingin mendorong histori pencarian yang dimodifikasi ke server.
Chetan
1
Jika Anda menggunakan repositori svn sebagai repositori jarak jauh Anda — melalui git svn— maka git rebase masterinilah jalan yang harus ditempuh, untuk menjaga sejarah linier, yang dipahami oleh svn.
alondono
15

Anda dapat menggunakan cherry-pick untuk mendapatkan commit perbaikan bug tertentu

$ git checkout branch
$ git cherry-pick bugfix
manojlds
sumber
akankah ceri-pick hanya berfungsi jika perbaikan bug adalah cabang yang digabungkan kembali menjadi master?
Prasith Govin
1
Anda dapat memilih-ceri, tetapi kemudian setelah menggabungkan cabang menjadi master (ketika cabang siap), Anda akan memiliki komit perbaikan bug dua kali dalam sejarah.
Gauthier
0

Jika Anda hanya ingin perbaikan bug diintegrasikan ke dalam cabang, git cherry-pickkomit yang relevan.

Alan Haggai Alavi
sumber