Robię coś bardzo prostego. Próbuję przygotować zwykły plik poprawki, więc mogę ponownie zastosować kilka zmian:Czy mogę uzyskać zgodne z łatką wyjście z git-diff?
$ git diff > before
$ git diff something_here > save.patch
$ git checkout .
$ patch < save.patch
$ git diff > after
$ diff before after
$
Z something_here
puste prawie działa, ale nazwy plików nie są w porządku. Myślę, że po prostu brakuje mi jakiejś opcji.
W prawdziwym życiu zamierzam zrobić scalenie po kasie, więc łatka może tam zawieść, ale widzisz, do czego zmierzam.
Edytuj Moja wina tutaj za zadanie niewłaściwego pytania. Właściwe pytanie brzmi: chcę zapisać moje zmiany, scalić, a następnie ponownie zastosować zmiany, jeśli to możliwe? Zapytałem go w niewłaściwy sposób, ponieważ jestem używany do używania łaty do rozwiązywania tego rodzaju problemów i git diff
wyglądało tak, jak tego chciał.
Komentarz od Charlesa Baileya: miał właściwą odpowiedź. Dla mnie prawidłowe jest git-apply (git-stash wygląda na bardziej ciężki niż potrzebuję, a rebasing i bundles zdecydowanie wykracza poza mój obecny poziom umiejętności.) Przyjmuję odpowiedź, którą dał mi Charles (ponieważ nie można zaakceptować komentarza). Dzięki za wszystkie sugestie.
Edit, 6 lat później Jak każdego, kto zna temat wie, że zawyżona trudności git stash
. Prawie codziennie lub tak, użyję następującą sekwencję:
$ git stash
$ git merge
$ git stash pop
Czy jest jakiś powód, dla którego chcesz użyć specjalnie 'patch' zamiast' git apply'? –
A nawet czy naprawdę potrzebujesz łatek, a nie czegoś w rodzaju 'git stash' lub innych narzędzi git? –
Po edycji, myślę, że 'git stash' jest najłatwiejszym rozwiązaniem dla tego, co próbujesz zrobić, ale istnieje wiele podejść, które działają. –