Saya di cabang mybranch1
. diambil mybranch2
dari mybranch1
dan perubahan dilakukan pada mybranch2
.
Kemudian, sementara pada mybranch1
, saya telah melakukan git merge --no-commit mybranch2
itu. Menunjukkan ada konflik saat penggabungan.
Sekarang saya ingin membuang semuanya ( merge
perintah) agar mybranch1
kembali seperti semula. Saya tidak tahu bagaimana cara melakukannya.
git
git-merge
git-merge-conflict
Anshul
sumber
sumber
Jawaban:
Git terbaru:
Upaya ini untuk mengatur ulang copy pekerjaan Anda ke status apa pun itu sebelum penggabungan. Itu berarti bahwa ia harus mengembalikan perubahan yang tidak dikomit dari sebelum penggabungan, meskipun tidak selalu dapat diandalkan. Biasanya Anda tidak boleh bergabung dengan perubahan yang tidak dikomit.
Sebelum versi 1.7.4:
Ini sintaks yang lebih lama tetapi melakukan hal yang sama seperti di atas.
Sebelum versi 1.6.2:
yang menghapus semua perubahan yang tidak dikomit, termasuk gabungan yang tidak berkomitmen. Terkadang perilaku ini berguna bahkan di versi Git yang lebih baru yang mendukung perintah di atas.
sumber
git reset --merge
bahkan dalam versi yang lebih baru. Saya mengalamigit merge --abort
kesalahan (tidak membuat perubahan) ketikagit reset --merge
berhasil (dan melakukan hal yang benar) di git 2.2.1.git merge --abort
diikuti olehgit reset --merge
ketika memiliki konflik muncul otomatis dari simpanan saya.git merge --abort
bekerja untuk saya, tetapi saya menemukan diri saya dalam situasi di mana saya memeriksa dalam keadaan KEPALA terpisah, dan salah satu file saya memiliki keadaan "keduanya dimodifikasi". Aku ingin membuang segala sesuatu dan kembali ke cabang, saya harusgit reset --hard
,git merge --abort
mengatakan kepada saya tidak ada merge untuk batalkan, (MERGE_HEAD hilang).git merge --abort
tidak dapat mengembalikan kondisi Anda sebelumnya, dan dalam kasus itu "sintaks lama" berhasilgit reset --hard
.Sebenarnya, perlu diperhatikan bahwa
git merge --abort
hanya setara dengan yanggit reset --merge
diberikan yangMERGE_HEAD
hadir. Ini bisa dibaca di git help untuk menggabungkan perintah.Setelah penggabungan yang gagal, ketika tidak ada
MERGE_HEAD
, penggabungan yang gagal dapat dibatalkan dengangit reset --merge
tetapi tidak harus dengangit merge --abort
, sehingga mereka tidak hanya sintaks lama dan baru untuk hal yang sama .Secara pribadi saya menemukan
git reset --merge
jauh lebih berguna dalam pekerjaan sehari-hari.sumber
git stash apply
cabang yang salah, dangit merge --abort
tidak melakukan apa pun (tidakMERGE_HEAD
), saatgit reset --merge
melakukan trik.git merge --abort
adalah perintah baru untukgit reset --merge
dan saya mengalami masalah yang sama dengan @geomaster ini sangat membantu, terima kasih!Dengan asumsi Anda menggunakan git terbaru,
sumber
Ada dua hal yang dapat Anda lakukan pertama kali membatalkan penggabungan dengan perintah
atau
Anda dapat pergi ke negara komit sebelumnya untuk sementara dengan perintah
sumber
Sourcetree
Jika Anda tidak melakukan penggabungan, maka cukup klik dua kali pada cabang lain (= checkout) dan ketika sourcetree bertanya kepada Anda tentang membuang semua perubahan maka setujui
sumber