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?

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.


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

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

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.