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.
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.
Jawaban:
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, foodan barkeduanya terletak di direktori Anda saat ini:
$ ls
foo bar
Ubah ke dalam foorepositori:
$ cd foo
Tambahkan barrepositori sebagai remote dan ambil:
$ git remote add bar ../bar
$ git remote update
Buat cabang baru bazdi foorepositori berdasarkan apa pun cabang Anda saat ini:
$ git checkout -b baz
Gabungkan cabang somebranchdari barrepositori ke cabang saat ini:
$ git merge --allow-unrelated-histories bar/somebranch
( --allow-unrelated-historiestidak diperlukan sebelum git versi 2.9)
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:
git remote add <repo-name> git@github.com:xxx/<repo-name>.git
git remote update
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 theirsopsi untuk git mergedi langkah terakhir.
Jika Anda ingin menambahkannya di subdirektori, Anda mungkin harus menggunakan submodul git
Dengan menggunakan panduan dari Larsks, saya dapat melakukan ini menggunakan SourceTree.
--allow-unrelated-historiesperintah git merge.