Mam gałąź git (zwaną v4), która została utworzona z mastera dopiero wczoraj. Było kilka zmian do opanowania, które chcę wprowadzić do wersji 4. Tak więc w wersji 4 próbowałem wykonać rebase z mastera i jeden plik ciągle coś schrzanił: jednowierszowy plik tekstowy, który zawiera numer wersji. Ten plik to app/views/common/version.txt
, który przed zmianą bazy zawiera następujący tekst:
v1.4-alpha-02
Oto co robię:
> 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
Teraz wygląda tak:
<<<<<<< HEAD:app/views/common/version.txt
v1.4-alpha-02
=======
v1.4-alpha-01
>>>>>>> new version, new branch:app/views/common/version.txt
Więc porządkuję to i teraz wygląda to tak:
v1.4-alpha-02
a potem próbowałem kontynuować: najpierw próbuję zatwierdzić:
> git commit -a -m "merged"
# Not currently on any branch.
nothing to commit (working directory clean)
Nie ma szczęścia. Więc próbowałem dodać plik:
git add app/views/common/version.txt
Brak odpowiedzi. Chyba brak wiadomości to dobra wiadomość. Więc staram się kontynuować:
> 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".
W tym momencie, po tym, jak się z tym obchodzę, uderzam głową o biurko.
Co tu się dzieje? Co ja robię źle? Czy ktoś może mnie wyprostować?
EDIT - dla unutbu
Zmieniłem plik zgodnie z sugestią i otrzymałem ten sam błąd:
> 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
i pozwól jej zawieść ; 2) następnie edytujesz version.txt
i ustawisz tak, jak powinien wyglądać w tym momencie, i zapisz edycję; 3) to ty git add .../version.txt
; 4) to robisz git rebase --continue
( nie „zatwierdzaj” )! Jeśli się rebase --continue
powiedzie, jest już zatwierdzony (nie ma takiej potrzeby git commit
!) - więc pozostaje tylko git push
(jeśli używasz zdalnego repozytorium). Mam nadzieję, że to pomoże, jeśli dobrze zrozumiałem :)
- na zdrowie!