Setelah sekian lama, selepas penggunaan berterusan git, saya juga tahu kaedah tertentu.
Anggapkan gudang a ialah gudang kegunaan akhir dan b ialah gudang keluaran. Cawangan semua adalah dev
Sekarang saya akan membalas kepada diri saya sendiri:
Langkah pertama ialah menambah gudang jauh
git remote tambah origin1 git.a
git remote tambah origin2 git.b
Langkah kedua ialah memastikan tiada apa-apa yang berubah secara setempat, tarik alamat gudang jauh, dan kemudian pangkalan semula.
git fetch origin1
git rebase -i origin1/dev
Malah, anda boleh mengosongkan fail permulaan dan menambah alamat gudang jauh lain ke .git/config setempat, seperti: [remote "all"] url = https://github .com /segment/test.git url = https://git.oschina.net/segment/test.git Operasi seterusnya adalah sama dan kod yang diserahkan akan diserahkan kepada dua gudang secara serentak .
Penyelesaian untuk menyimpan semua log dalam cawangan (diandaikan sebagai cawangan induk) sama:
Tambah B pada senarai jauh git remote add jae git://xxxxx@xxxx.git
Andaikan C telah menyegerakkan A dan menyelesaikan pengubahsuaian, maka anda perlu menyerahkan C kepada B. Pada masa ini, anda perlu memaksa penyerahan untuk mengelakkan masalah konflik tidak dapat diserahkan: git push jae master:master --paksa
Selepas menolaknya ke atas, log C dan B akan konsisten, dan anda boleh meneruskan operasi
Jika anda ingin memastikan semua cawangan konsisten, saya cadangkan anda hanya membuat projek baharu pada jae dan tolak C kepadanya
Saya rasa sebelum menarik dari mana-mana repositori jauh,
git simpanan
Kemudian tarik, ubah suai, tambah, serahkan, tolak. Sekali lagi
git simpanan pop
Kemudian selesaikan konflik jika ada Jika tiada konflik, tarik terus kod dari gudang jauh yang lain, kemudian ubah suai, tambah, serahkan dan tolak langkah demi langkah.
Semuanya berdasarkan tekaan Sila praktikkan sendiri jika anda khusus. Untuk rujukan sahaja.
Saya rasa anda sudah tahu cara menambah berbilang repositori jauh, jadi saya tidak akan membahasnya.
Terus: Apabila C=A, di bawah C git push -f 'B远程仓库' '分支' Dengan cara ini, walaupun B akan bercanggah dengan A C, ia akan dipaksa untuk menimpa keadaan C. Jadi A=B=C. LOG akan konsisten selepas itu. Parameter -f bermaksud tolakan paksa.
cuba sahaja
Setelah sekian lama, selepas penggunaan berterusan git, saya juga tahu kaedah tertentu.
Anggapkan gudang a ialah gudang kegunaan akhir dan b ialah gudang keluaran. Cawangan semua adalah dev
Sekarang saya akan membalas kepada diri saya sendiri:
Langkah pertama ialah menambah gudang jauh
git remote tambah origin1 git.a
git remote tambah origin2 git.b
Langkah kedua ialah memastikan tiada apa-apa yang berubah secara setempat, tarik alamat gudang jauh, dan kemudian pangkalan semula.
git fetch origin1
git rebase -i origin1/dev
Jika ada konflik, selesaikan.
git push -f origin1 dev
git push -f origin2 dev
selesai.
Malah, anda boleh mengosongkan fail permulaan dan menambah alamat gudang jauh lain ke .git/config setempat, seperti:
[remote "all"]
url = https://github .com /segment/test.git
url = https://git.oschina.net/segment/test.git
Operasi seterusnya adalah sama dan kod yang diserahkan akan diserahkan kepada dua gudang secara serentak .
Saya belum mencuba dua repositori git, tetapi saya rasa ia berfungsi seperti ini:
1.git remote tambah $C remote warehouse name $C remote warehouse url
2. ambil ke C
3. Gabungan setempat
4.push $C nama gudang jauh $nama projek
Rujukan: http://www.git-scm.com/book/zh/Git-%E5%9F%BA%E7%A1%80-%E8%BF%9C%E7%A8%8B%E4 %BB%93%E5%BA%93%E7%9A%84%E4%BD%BF%E7%94%A8
Penyelesaian untuk menyimpan semua log dalam cawangan (diandaikan sebagai cawangan induk) sama:
Selepas menolaknya ke atas, log C dan B akan konsisten, dan anda boleh meneruskan operasi
Jika anda ingin memastikan semua cawangan konsisten, saya cadangkan anda hanya membuat projek baharu pada jae dan tolak C kepadanya
Semoga ia membantu anda
Saya rasa sebelum menarik dari mana-mana repositori jauh,
Kemudian tarik, ubah suai, tambah, serahkan, tolak. Sekali lagi
Kemudian selesaikan konflik jika ada Jika tiada konflik, tarik terus kod dari gudang jauh yang lain, kemudian ubah suai, tambah, serahkan dan tolak langkah demi langkah.
Semuanya berdasarkan tekaan Sila praktikkan sendiri jika anda khusus. Untuk rujukan sahaja.
Saya rasa anda sudah tahu cara menambah berbilang repositori jauh, jadi saya tidak akan membahasnya.
Terus: Apabila C=A, di bawah C
git push -f 'B远程仓库' '分支'
Dengan cara ini, walaupun B akan bercanggah dengan A C, ia akan dipaksa untuk menimpa keadaan C. Jadi A=B=C. LOG akan konsisten selepas itu. Parameter -f bermaksud tolakan paksa.cuba sahaja
Hanya konfigurasikan gudang cermin
1.git remote add --mirror=push --mirror=fetch repoName url
2.git push repoName master