Saya memiliki cabang git (disebut v4), yang dibuat dari master kemarin. Ada beberapa perubahan untuk master, yang saya ingin masuk ke v4. Jadi, di v4, saya mencoba melakukan rebase dari master, dan satu file terus mengacaukan: file teks satu baris, yang berisi nomor versi. File ini app/views/common/version.txt
, yang sebelum rebasing berisi teks ini:
v1.4-alpha-02
Inilah yang saya lakukan:
> git rebase master
First, rewinding head to replay your work on top of it...
Applying: new version, new branch
error: patch failed: app/views/common/version.txt:1
error: app/views/common/version.txt: patch does not apply
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging app/views/common/version.txt
CONFLICT (content): Merge conflict in app/views/common/version.txt
Failed to merge in the changes.
Patch failed at 0001 new version, new branch
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".
The version.txt
sekarang terlihat seperti ini:
<<<<<<< HEAD:app/views/common/version.txt
v1.4-alpha-02
=======
v1.4-alpha-01
>>>>>>> new version, new branch:app/views/common/version.txt
Jadi, saya merapikannya dan terlihat seperti ini sekarang:
v1.4-alpha-02
dan kemudian saya mencoba untuk melanjutkan: pada awalnya saya mencoba melakukan:
> git commit -a -m "merged"
# Not currently on any branch.
nothing to commit (working directory clean)
Tidak beruntung disana. Jadi, saya mencoba menambahkan file:
git add app/views/common/version.txt
Tidak ada respon. Tidak ada berita adalah kabar baik, saya rasa. Jadi, saya mencoba melanjutkan:
> git rebase --continue
Applying: new version, new branch
No changes - did you forget to use 'git add'?
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".
Pada titik inilah, setelah berputar-putar dengan ini, saya membenturkan kepala saya dari meja.
Apa yang terjadi di sini? Apa yang saya lakukan salah? Adakah yang bisa meluruskan saya?
EDIT - untuk unutbu
Saya mengubah file seperti yang Anda sarankan dan mendapatkan kesalahan yang sama:
> git rebase master
First, rewinding head to replay your work on top of it...
Applying: new version, new branch
error: patch failed: app/views/common/version.txt:1
error: app/views/common/version.txt: patch does not apply
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging app/views/common/version.txt
CONFLICT (content): Merge conflict in app/views/common/version.txt
Failed to merge in the changes.
Patch failed at 0001 new version, new branch
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".
git rebase master
dan membiarkannya gagal ; 2) kemudian Anda mengedit version.txt
dan membuatnya sebagaimana mestinya pada titik itu, dan menyimpan hasil edit; 3) lalu Anda git add .../version.txt
; 4) maka Anda lakukan git rebase --continue
( bukan 'berkomitmen' )! Jika rebase --continue
berhasil di sini, itu sudah dilakukan (tidak perlu di git commit
sini!) - jadi yang perlu dilakukan hanyalah git push
(jika Anda menggunakan repo jarak jauh). Semoga ini bisa membantu, jika saya melakukannya dengan benar :)
- selamat!