Próbuję zmienić bazę „dev”, aby dogonić gałąź „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".
Jakieś pomysły?
git
git-rebase
awm
źródło
źródło
git rebase --skip
których nadal może nie działać poprawnie. Do wersji Git 2.0.2 (lipiec 2014). Zobacz moją odpowiedź poniżejOdpowiedzi:
Jest kilka sytuacji, w których
rebase
utknąłem. Jednym z nich jest sytuacja, w której zmiany staną się puste (zatwierdzenie ma zmiany, które zostały już wprowadzone w rebase), w którym to przypadku może być konieczne użyciegit rebase --skip
.Łatwo to stwierdzić. Jeśli to zrobisz,
git status
nie powinno pokazać żadnych zmian. Jeśli tak, po prostu to pomiń. Jeśli tak nie jest, prześlij kopię,git status
a postaram się pomóc dalej.źródło
--skip
że poradzę sobie gorzej, niż tylko pójdę dalej ze zmianami, które wprowadziłem.git status
pokazał, że istnieje plik, który został zmodyfikowany, ale nie został dodany do zatwierdzenia. Wykonywanieadd somefile.txt
może być kontynuowane przy zmianie bazy.Jednym z przypadków, w których napotkałem ten problem, było wykonanie a
git commit
pogit add
. Tak więc następująca sekwencja spowoduje błąd rebase, o którym wspomniałeś:git add <file with conflict>
git commit -m "<some message>"
git rebase --continue
Podczas gdy poniższa sekwencja działa bez żadnych błędów i kontynuuje rebase:
git add <file with conflict>
git rebase --continue
Możliwe, że
git add -A
przy opcji „Wszystkie” tworzy się podobna sytuacja. (Proszę zauważyć, że jestem bardzo niedoświadczony w git, więc ta odpowiedź może nie być poprawna.) Aby być bezpiecznym,git rebase --skip
wydaje się, że działa dobrze w tej sytuacji.źródło
Uwaga: Git 2.0.2 (lipiec 2014 r.) Naprawił jeden przypadek, w którym
git rebase --skip
utknąłby i nie byłby w stanie kontynuować aktualnej rebase.Zobacz popełnić 95104c7 przez brian m. carlson (
bk2204
)rebase--merge
: napraw--skip
z dwoma konfliktami z rzęduźródło
Wygląda na to, że zapomniałeś o
git add
swoich zmianach ...źródło
git add
a następnie kontynuowałeś scalanie i zatrzymało się, ponieważ inny plik zawiera konflikty, więc musisz również naprawić ten plik. Czy coś mi umyka?Po rebase z mnóstwem konfliktów (długich
git status
) nie mogłem zrozumieć, co miałem wystawić. Używam Gita zintegrowanego z PhpStormem i nie pokazał on żadnych plików niestopowych.git add .
nie rozwiązałem tego, ale ten komentarz zalecał dzwonieniegit diff-files --ignore-submodules
. To pokazało trzy pliki, które musiałem specjalnie dodać git i to załatwiło sprawę.źródło