Sungguh pelik alat pengurusan git Terdapat banyak penjelasan untuk masalah, dan anda tidak dapat mengetahui yang mana satu yang betul sepintas lalu. http://git-scm.com/blog/2010/03/02/undoing-merges.html Ini jawapan rasmi saya akan terjemahkannya di sini selepas saya selesai membacanya.
===================== Terjemahan mudah bermula =====================
Oleh kerana terlalu ramai orang bertanya cara untuk membuat asal cantuman, git secara rasmi mengeluarkan tutorial ini untuk menunjukkan cara mencapai matlamat untuk membatalkan cantuman di bawah sistem ideologi sedia ada git.
Kaedah 1, tetapkan semula kepada versi sebelum bergabung, dan kemudian buat semula operasi seterusnya Setiap kolaborator dikehendaki mengetahui cara untuk melancarkan HEAD setempat:
Ini akan membuat komitmen baharu untuk mengimbangi operasi gabungan yang sepadan, dan kemudian git merge [cawangan yang diwakili oleh nombor itu] akan menggesa:
Already up-to-date.
Kerana menggunakan kaedah 2 akan membuat git tersalah anggap bahawa perkara dalam cawangan ini adalah perkara yang kita tidak mahu.
===================================Tamat terjemahan mudah =======
Pada akhirnya, saya masih merasakan bahawa yang teratas terlalu menyusahkan. Bagi mereka yang menggunakan WebStorm untuk menulis kod di bahagian hadapan setiap hari, lihat: WebStorm Klik kanan fail atau folder projek, dan terdapat:
Sejarah Tempatan -> Papar Sejarah
Selepas mengkliknya, tetingkap akan muncul di mana anda boleh melihat semua perubahan setempat. Cari yang betul dan tekan yang di sudut kiri atas:
Berbalik
Butang
, iaitu anak panah kecil melengkung berwarna ungu, kembali ke belakang. Ia sangat berguna apabila saiz fail tidak besar dan sangat disyorkan.
Jika anda pasti akan meninggalkan komit gabungan ini, jika anda menggabungkan cawangan yang salah untuk dikuasai, mula-mula gunakan git reflog atau gitg, gitk, qgit dan alatan lain untuk menentukan komit di mana induk berada sebelum anda digabungkan, dan kemudian gunakannya pada cawangan induk git reset --hard <commit> Tetapkan semula penuding kepala. Secara umumnya, melaksanakan git reset --hard HEAD~ terus pada induk juga boleh kembali ke komit sebelum digabungkan, tetapi lebih baik menggunakan komit yang disahkan untuk perintah git reset --hard. Ambil perhatian bahawa perintah git reset --hard adalah berisiko Melainkan anda sangat pasti bahawa anda ingin meninggalkan penyerahan semasa, sebaiknya git branch membuat rujukan cawangan baharu untuk penyerahan semasa sebelum meneruskannya selepas mengesahkan bahawa ia adalah betul.
Jika terdapat komit baharu selepas cantuman yang salah, anda boleh menggunakan git rebase --onto <错误的合并提交> <正确的合并提交> <新提交所在分支> untuk membina semula komit baharu pada komit gabungan yang betul selepas melengkapkan cantuman betul yang disebutkan di atas. Urutan komit yang dibina semula oleh perintah git rebase --onto adalah linear terbaik, jika tidak, komit bukan linear akan menjadi linear. Jika anda perlu menyimpan sejarah penyerahan bukan linear, anda boleh mempertimbangkan untuk menggunakan parameter --preserve-merges, tetapi hasilnya sangat tidak boleh dipercayai, bergantung pada tahap ketidaklinearan penyerahan.
Jika anda menghadapi konflik semasa penggabungan dan ingin membatalkan operasi dan memulihkan indeks, gunakan git merge --abort
git reset --hard boleh kembali ke komit tertentu
git revert boleh membuat asal komit, dan membuat asal akan menghasilkan komit baharu
Sungguh pelik alat pengurusan git Terdapat banyak penjelasan untuk masalah, dan anda tidak dapat mengetahui yang mana satu yang betul sepintas lalu.
http://git-scm.com/blog/2010/03/02/undoing-merges.html Ini jawapan rasmi saya akan terjemahkannya di sini selepas saya selesai membacanya.
===================== Terjemahan mudah bermula =====================
Oleh kerana terlalu ramai orang bertanya cara untuk membuat asal cantuman, git secara rasmi mengeluarkan tutorial ini untuk menunjukkan cara mencapai matlamat untuk membatalkan cantuman di bawah sistem ideologi sedia ada git.
Kaedah 1, tetapkan semula kepada versi sebelum bergabung, dan kemudian buat semula operasi seterusnya Setiap kolaborator dikehendaki mengetahui cara untuk melancarkan HEAD setempat:
Kaedah 2, apabila terdapat operasi dan perubahan lain selepas gabungan, git juga mempunyai cara untuk membatalkan gabungan, gunakan git revert:
Ini akan membuat komitmen baharu untuk mengimbangi operasi gabungan yang sepadan, dan kemudian git merge [cawangan yang diwakili oleh nombor itu] akan menggesa:
Kerana menggunakan kaedah 2 akan membuat git tersalah anggap bahawa perkara dalam cawangan ini adalah perkara yang kita tidak mahu.
Kaedah tiga , cara membatalkan kaedah dua:
Itu sahaja, anda boleh bergabung seperti biasa, tetapi mungkin terdapat banyak konflik! !
===================================Tamat terjemahan mudah =======
Pada akhirnya, saya masih merasakan bahawa yang teratas terlalu menyusahkan. Bagi mereka yang menggunakan WebStorm untuk menulis kod di bahagian hadapan setiap hari, lihat: WebStorm Klik kanan fail atau folder projek, dan terdapat:
Sejarah Tempatan -> Papar Sejarah
Selepas mengkliknya, tetingkap akan muncul di mana anda boleh melihat semua perubahan setempat. Cari yang betul dan tekan yang di sudut kiri atas:
Berbalik
Butang, iaitu anak panah kecil melengkung berwarna ungu, kembali ke belakang. Ia sangat berguna apabila saiz fail tidak besar dan sangat disyorkan.
Jika anda pasti akan meninggalkan komit gabungan ini, jika anda menggabungkan cawangan yang salah untuk dikuasai, mula-mula gunakan
git reflog
atau gitg, gitk, qgit dan alatan lain untuk menentukan komit di mana induk berada sebelum anda digabungkan, dan kemudian gunakannya pada cawangan indukgit reset --hard <commit>
Tetapkan semula penuding kepala. Secara umumnya, melaksanakangit reset --hard HEAD~
terus pada induk juga boleh kembali ke komit sebelum digabungkan, tetapi lebih baik menggunakan komit yang disahkan untuk perintahgit reset --hard
. Ambil perhatian bahawa perintahgit reset --hard
adalah berisiko Melainkan anda sangat pasti bahawa anda ingin meninggalkan penyerahan semasa, sebaiknyagit branch
membuat rujukan cawangan baharu untuk penyerahan semasa sebelum meneruskannya selepas mengesahkan bahawa ia adalah betul.Jika terdapat komit baharu selepas cantuman yang salah, anda boleh menggunakan
git rebase --onto <错误的合并提交> <正确的合并提交> <新提交所在分支>
untuk membina semula komit baharu pada komit gabungan yang betul selepas melengkapkan cantuman betul yang disebutkan di atas. Urutan komit yang dibina semula oleh perintahgit rebase --onto
adalah linear terbaik, jika tidak, komit bukan linear akan menjadi linear. Jika anda perlu menyimpan sejarah penyerahan bukan linear, anda boleh mempertimbangkan untuk menggunakan parameter--preserve-merges
, tetapi hasilnya sangat tidak boleh dipercayai, bergantung pada tahap ketidaklinearan penyerahan.B-R-A-N-C-H
/ --Gabung
M-A-S-T-E-R----M
Anda boleh menggunakan git reset --nilai hash R keras dan kembali ke R. Kembali dari M selepas Gabung ke R.
Saya rasa git merge --abort diperlukan di sini
Jika anda menghadapi konflik semasa penggabungan dan ingin membatalkan operasi dan memulihkan indeks, gunakan git merge --abort
git reset --hard boleh kembali ke komit tertentu
git revert boleh membuat asal komit, dan membuat asal akan menghasilkan komit baharu
Git rebase belum dikaji dengan teliti.
http://opensource.apple.com/source/Git/Git-26/src/git-htmldocs/howto/revert-a-faulty-merge.txt
Siapa yang mempunyai masa untuk menterjemahkannya?