ฉันมีสาขาคอมไพล์ (เรียกว่า v4) ซึ่งสร้างจากมาสเตอร์เมื่อวานนี้ มีการเปลี่ยนแปลงหลักสองสามอย่างที่ฉันต้องการเข้าสู่ v4 ดังนั้นใน v4 ฉันพยายามทำ rebase จาก master และไฟล์หนึ่งก็ทำให้สิ่งต่าง ๆ เกิดขึ้น: ไฟล์ข้อความบรรทัดเดียวที่มีหมายเลขเวอร์ชัน ไฟล์นี้app/views/common/version.txt
ซึ่งก่อนทำการ rebasing จะมีข้อความนี้:
v1.4-alpha-02
นี่คือสิ่งที่ฉันกำลังทำ:
> 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".
version.txt
ขณะนี้มีลักษณะเช่นนี้
<<<<<<< HEAD:app/views/common/version.txt
v1.4-alpha-02
=======
v1.4-alpha-01
>>>>>>> new version, new branch:app/views/common/version.txt
ดังนั้นฉันจัดมันให้เรียบร้อยและดูเหมือนตอนนี้:
v1.4-alpha-02
จากนั้นฉันก็พยายามดำเนินการต่อ: ตอนแรกฉันลองกระทำ:
> git commit -a -m "merged"
# Not currently on any branch.
nothing to commit (working directory clean)
ไม่มีโชคที่นั่น ดังนั้นฉันพยายามเพิ่มไฟล์:
git add app/views/common/version.txt
ไม่มีการตอบสนอง ฉันเดาว่าไม่มีข่าวดี ดังนั้นฉันพยายามดำเนินการต่อ:
> 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".
เมื่อมาถึงจุดนี้หลังจากวนเวียนอยู่กับสิ่งนี้ฉันก็แทบจะสะบัดหัวออกจากโต๊ะทำงาน
เกิดอะไรขึ้นที่นี่? ผมทำอะไรผิดหรือเปล่า? ใครช่วยตั้งให้ฉันตรง
แก้ไข - สำหรับ unutbu
ฉันเปลี่ยนไฟล์ตามที่คุณแนะนำและได้รับข้อผิดพลาดเดียวกัน:
> 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
และปล่อยให้มันล้มเหลว ; 2) จากนั้นคุณแก้ไขversion.txt
และทำให้มันควรจะดูที่จุดนั้นและบันทึกการแก้ไข; 3) แล้วคุณgit add .../version.txt
; 4) แล้วคุณทำgit rebase --continue
( ไม่ 'กระทำ' )! หากrebase --continue
ประสบความสำเร็จที่นี่แสดงว่ามีความมุ่งมั่นแล้ว (ไม่จำเป็นสำหรับgit commit
ที่นี่!) - ดังนั้นสิ่งที่ต้องทำคือgit push
(ถ้าคุณใช้ repo ระยะไกล) หวังว่านี่จะช่วยได้ถ้าฉันทำถูก:)
- ไชโย!