Saya mencoba untuk rebase 'dev' untuk mengejar cabang 'master'.
$ git checkout dev
$ git rebase master
First, rewinding head to replay your work on top of it...
Applying: Corrected compilation problems that came from conversion from SVN.
Using index info to reconstruct a base tree...
M src/com/....
<stdin>:125: trailing whitespace.
/**
<stdin>:126: trailing whitespace.
*
<stdin>:127: trailing whitespace.
*/
<stdin>:128: trailing whitespace.
package com....
<stdin>:129: trailing whitespace.
warning: squelched 117 whitespace errors
warning: 122 lines add whitespace errors.
Falling back to patching base and 3-way merge...
Auto-merging src/com/....
CONFLICT (content): Merge conflict in src/com/...
Failed to merge in the changes.
Patch failed at 0001 Corrected compilation problems that came from conversion from SVN.
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To check out the original branch and stop rebasing run "git rebase --abort".
$ vi src/com/..... { fixed the merge issue on one file }
$ git add -A .
$ git rebase --continue
src/com/....: needs merge
You must edit all merge conflicts and then
mark them as resolved using git add
$ vi src/com.... { verified, no >>> or <<< left, no merge markers }
$ git rebase --continue
Applying: Corrected compilation problems that came from conversion from SVN.
No changes - did you forget to use 'git add'?
If there is nothing left to stage, chances are that something else
already introduced the same changes; you might want to skip this patch.
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To check out the original branch and stop rebasing run "git rebase --abort".
Ada ide?
git
git-rebase
awm
sumber
sumber
git rebase --skip
masih tidak dapat berfungsi dengan baik. Hingga Git 2.0.2 (Juli 2014). Lihat jawaban saya di bawah iniJawaban:
Ada beberapa situasi di mana saya pernah melihat
rebase
macet. Salah satunya adalah jika perubahan menjadi nol (komit memiliki perubahan yang sudah dibuat sebelumnya dalam rebase) dalam hal ini Anda mungkin harus menggunakangit rebase --skip
.Cukup mudah untuk mengatakannya. Jika Anda melakukannya,
git status
tidak akan ada perubahan. Jika demikian lewati saja. Jika bukan itu masalahnya, silakan kirim salinannyagit status
dan saya dapat mencoba membantu lebih lanjut.sumber
--skip
akan melakukan lebih buruk daripada hanya melanjutkan dengan perubahan yang saya buat.git status
menunjukkan, bahwa ada file yang dimodifikasi, tetapi tidak ditambahkan ke dalam komit. Performingadd somefile.txt
diizinkan untuk melanjutkan rebasing.Salah satu kali saya mengalami masalah ini adalah ketika melakukan
git commit
setelahgit add
. Jadi, urutan berikut akan menghasilkan kesalahan rebase yang Anda sebutkan:git add <file with conflict>
git commit -m "<some message>"
git rebase --continue
Sementara, urutan di bawah ini berjalan tanpa kesalahan, dan melanjutkan rebase:
git add <file with conflict>
git rebase --continue
Mungkin saja bahwa
git add -A
dengan opsi "Semua" menciptakan situasi yang serupa. (Harap dicatat, saya sangat tidak berpengalaman dalam git, jadi jawaban ini mungkin tidak benar.) Untuk amannya,git rebase --skip
sepertinya juga berfungsi dengan baik dalam situasi ini.sumber
Catatan: Git 2.0.2 (Juli 2014) telah memperbaiki satu kasus di mana a
git rebase --skip
akan macet dan tidak akan dapat melanjutkan dengan rebase saat ini.Lihat komit 95104c7 oleh brian m. carlson (
bk2204
)rebase--merge
: perbaiki--skip
dengan dua konflik berturut-turutsumber
Sepertinya Anda lupa dengan
git add
perubahan Anda ...sumber
git add
dan kemudian melanjutkan penggabungan, dan berhenti karena file lain mengalami konflik, jadi Anda harus memperbaikinya juga. Apakah saya melewatkan sesuatu di sini?