2012-03-14 16 views
11

git rebase pozostawia znaczniki konfliktów w plikach; coś w rodzaju:Czy git może dodawać markery konfliktu, takie jak git rebase?

<<<<<<< HEAD 
Whatever line + context is different from the previous commit 
======= 
Whatever line + context is different from the commit being applied 
>>>>>>> new version, new branch:app/views/common/version.txt 

Kiedy używam git, aplikuję łatkę utworzoną za pomocą łatki git format, nie będzie ona zostawiać plików zmodyfikowanych domyślnie. Mogę go podać - odjąć, co spowoduje, że utworzy pliki .rej dla tych, które mają nierozwiązywalne konflikty, ale tak naprawdę, chcę je zmodyfikować i pozostawić wszystkie w stanie, które robi git rebase, więc mogę po prostu otworzyć plik, ręcznie połącz go, a następnie git dodaj i powiedz git, aby kontynuować. Czy jest jakiś sposób na zrobienie tego, o czym po prostu nie wiem?

Odpowiedz

6

Dla mnie następujące prace:

git init 
seq 1 30 > file 
git add file 
git commit -m 1-30 
sed -i '13a13.4' file 
git commit -m 'add 13.4' file 
git format-patch -1 
git reset --hard HEAD^ 
sed -i 13d file 
git commit -m 'remove 13' file 
git am -3 0001-add-13.4.patch 

Po tym file ma znaczniki konfliktu. To jest użycie git am -3 zamiast git apply.

+0

Hmmm - ciekawe, że rzeczywiście wydaje się robić to, co ja chce. Myślałem, że git stosuje git - być może używa wewnętrznego API, który nie jest dostępny poprzez opcje wiersza poleceń git apply. Dzięki! – kcstrom

3

Użyj opcji z trzech sposób scalania:

git apply -3 0001-patch.patch