Diberikan repo Foo dan repo Bar. Saya ingin menggabungkan Bar dengan Foo, tetapi hanya menjadi cabang terpisah, bernama baz
.
git checkout -b baz
<= letakkan repo Bar di sini.
Anda tidak dapat menggabungkan repositori menjadi cabang . Anda dapat menggabungkan cabang dari repositori lain menjadi cabang di repositori lokal Anda. Dengan asumsi Anda memiliki dua repositori, foo
dan bar
keduanya terletak di direktori Anda saat ini:
$ ls
foo bar
Ubah ke dalam foo
repositori:
$ cd foo
Tambahkan bar
repositori sebagai remote dan ambil:
$ git remote add bar ../bar
$ git remote update
Buat cabang baru baz
di foo
repositori berdasarkan apa pun cabang Anda saat ini:
$ git checkout -b baz
Gabungkan cabang somebranch
dari bar
repositori ke cabang saat ini:
$ git merge --allow-unrelated-histories bar/somebranch
( --allow-unrelated-histories
tidak diperlukan sebelum git versi 2.9)
--allow-unrelated-histories
perintah git merge.Diperbarui dengan perintah "kehidupan nyata":
Mulailah dari direktori repo Anda, pastikan copy pekerjaan Anda bersih (tidak ada file yang diubah, ditambahkan atau dihapus).
Buat cabang baru:
git checkout -b <my-branch>
Tambahkan remote sekunder, lalu ambil:
Gabungkan salah satu cabangnya di cabang Anda saat ini:
git merge <repo-name>/<their-branch>
Jika Anda tidak tahu mana yang
<their-branch>
Anda inginkan, pergilahmaster
Jika Anda yakin ingin menerima semua perubahan jarak jauh dan menghindari konflik ( menimpa milik Anda ) maka Anda dapat menentukan
-X theirs
opsi untukgit merge
di langkah terakhir.Jika Anda ingin menambahkannya di subdirektori, Anda mungkin harus menggunakan submodul git
sumber
Dengan menggunakan panduan dari Larsks, saya dapat melakukan ini menggunakan SourceTree.
sumber