Nie sądzę, żeby to miało na myśli to pytanie. Odwrotne scalanie w SVN również przywraca zmiany z zatwierdzenia do zmian lokalnych, dzięki czemu można je edytować i zatwierdzać ponownie.
Aby utworzyć nowy zatwierdzenie, które `` cofa '' zmiany poprzedniego zatwierdzenia, użyj:
$ git revert <commit>
Możliwe jest również faktyczne usunięcie zatwierdzenia z dowolnego punktu w przeszłości poprzez zmianę bazy, a następnie zresetowanie, ale naprawdę nie chcesz tego robić, jeśli już wypchnąłeś swoje zatwierdzenia do innego repozytorium (lub ktoś inny wyciągnął z ciebie) .
Prawdopodobnie będziesz musiał podać -m <parent number>opcję, git revertaby określić, która zmiana ma zostać cofnięta. Jeśli chcesz cofnąć scalenie niepublikowanej historii, użyj git reset --hard HEAD^1.
Jakub Narębski
3
Jakub: to prawda, jeśli przywracasz zatwierdzenie przez scalanie, ale w terminologii Subversion „odwrotne scalanie” jest po prostu nazwą przywracania dowolnego rodzaju zatwierdzenia.
Aby przywrócić scalania popełnić, trzeba użyć: git revert -m <parent number>. Na przykład, aby cofnąć ostatnie zatwierdzenie scalające, używając rodzica z numerem 1, użyj:
git revert -m 1 HEAD
Aby cofnąć zatwierdzenie scalające przed ostatnim zatwierdzeniem, należy:
git revert -m 1 HEAD^
Użyj, git show <merge commit SHA1>aby zobaczyć rodziców, numeracja to kolejność, w jakiej się pojawiają, npMerge: e4c54b3 4725ad2
Jak uzyskać „numer” powiązany z rodzicem? Czy gałęzie mają wewnętrzny numeryczny „identyfikator”?
daniyalzade,
7
Użyj, git show <merge commit SHA1>aby zobaczyć rodziców, numeracja to kolejność, w jakiej się pojawiają, np.Merge: e4c54b3 4725ad2
supermetoda
8
Przykład: git revert -m 1 SHA1To polecenie działało dla mnie, aby cofnąć zatwierdzenie scalające, które było kilkoma zatwierdzeniami scalającymi przed nagłówkiem i miało wiele zatwierdzeń pod spodem.
c.apolzon
3
Kim są rodzice? E4c54b3 czy 4725ad2?
Dolphin
1
To wciąż nie dostarcza wystarczających informacji o tym, jak wyniki git show odnoszą się do numerów rodziców. Czy „kolejność pojawiania się” jest oparta na 1? Oparte na 0? W tym przykładzie, jaki jest SHA1 rodzica 1? e4c54b3 czy 4725ad2?
cowlinator
4
Jeśli dobrze Cię rozumiem, mówisz o zrobieniu
svn merge -rn:n-1
wycofać się z wcześniejszego zatwierdzenia, w takim przypadku prawdopodobnie szukasz
To odrzuca zatwierdzenie scalające, które nie robi tego, o co prosi oryginalny plakat. OP próbuje zrobić odwrotną łatkę, aby cofnąć poprzednie zmiany, a nie całkowicie usunąć historię poprzednich zmian.
-1
Jeśli nie chcesz zatwierdzać lub chcesz zatwierdzić później (wiadomość o zatwierdzeniu będzie nadal przygotowana dla ciebie, którą możesz również edytować):
Odpowiedzi:
Aby utworzyć nowy zatwierdzenie, które `` cofa '' zmiany poprzedniego zatwierdzenia, użyj:
Możliwe jest również faktyczne usunięcie zatwierdzenia z dowolnego punktu w przeszłości poprzez zmianę bazy, a następnie zresetowanie, ale naprawdę nie chcesz tego robić, jeśli już wypchnąłeś swoje zatwierdzenia do innego repozytorium (lub ktoś inny wyciągnął z ciebie) .
źródło
-m <parent number>
opcję,git revert
aby określić, która zmiana ma zostać cofnięta. Jeśli chcesz cofnąć scalenie niepublikowanej historii, użyjgit reset --hard HEAD^1
.-m
oznacza, że przyszłe scalanie z niescalonej gałęzi nie będzie zawierało zmian sprzed tego scalenia! Zobacz schacon.github.com/git/howto/revert-a-faulty-merge.txt, aby zapoznać się z właściwymi sposobami ponownego scalenia niepołączonej gałęzi.Aby przywrócić scalania popełnić, trzeba użyć:
git revert -m <parent number>
. Na przykład, aby cofnąć ostatnie zatwierdzenie scalające, używając rodzica z numerem 1, użyj:Aby cofnąć zatwierdzenie scalające przed ostatnim zatwierdzeniem, należy:
Użyj,
git show <merge commit SHA1>
aby zobaczyć rodziców, numeracja to kolejność, w jakiej się pojawiają, npMerge: e4c54b3 4725ad2
Dokumentacja git merge: http://schacon.github.com/git/git-merge.html
dyskusja o git merge (myląca, ale bardzo szczegółowa): http://schacon.github.com/git/howto/revert-a-faulty-merge.txt
źródło
git show <merge commit SHA1>
aby zobaczyć rodziców, numeracja to kolejność, w jakiej się pojawiają, np.Merge: e4c54b3 4725ad2
git revert -m 1 SHA1
To polecenie działało dla mnie, aby cofnąć zatwierdzenie scalające, które było kilkoma zatwierdzeniami scalającymi przed nagłówkiem i miało wiele zatwierdzeń pod spodem.Jeśli dobrze Cię rozumiem, mówisz o zrobieniu
wycofać się z wcześniejszego zatwierdzenia, w takim przypadku prawdopodobnie szukasz
źródło
Użyj powyższego polecenia, aby cofnąć scalone zmiany.
źródło
Jeśli nie chcesz zatwierdzać lub chcesz zatwierdzić później (wiadomość o zatwierdzeniu będzie nadal przygotowana dla ciebie, którą możesz również edytować):
źródło