Używam Sourcetree dla Windows do repozytorium git i chciałbym cofnąć niepodawane zatwierdzenie.
Czy to jest możliwe? Jeśli zrobię „przywróć zatwierdzenie”, utworzy drugie zatwierdzenie, które cofa pierwsze zatwierdzenie, ale nie chcę, aby pierwsze zatwierdzenie pojawiło się w mojej kontroli źródła.
Mogę również usunąć moje lokalne repozytorium i pobrać je ponownie bez mojego lokalnego zatwierdzenia, ale może jest inny sposób?
atlassian-sourcetree
datasourcecontrol
deimos1988
źródło
źródło
Odpowiedzi:
Miękki reset zachowa lokalne zmiany.
Źródło: https://answers.atlassian.com/questions/153791/how-should-i-remove-push-commit-from-sourcetree
Edytować
About
git revert
: To polecenie tworzy nowe zatwierdzenie, które cofnie inne zatwierdzenia. Np. Jeśli masz zatwierdzenie, które dodaje nowy plik,git revert
można go użyć do zatwierdzenia, które usunie nowy plik.Informacje o zastosowaniu miękkiego resetu: Załóżmy, że masz commits
A
doE
(A---B---C---D---E
) i chcesz usunąć ostatni commit (E
). Następnie możesz wykonać miękki reset, aby zatwierdzićD
. Przy miękkim resecie zatwierdzenieE
zostanie usunięte z git, ale lokalne zmiany zostaną zachowane. Jest więcej przykładów w dokumentacji git reset .źródło
Jeśli wybierzesz wpis dziennika, do którego chcesz przywrócić, możesz kliknąć „Resetuj do tego zatwierdzenia”. Tej opcji należy używać tylko wtedy, gdy nie wprowadzono zmian wstecznego zatwierdzania. Jeśli martwisz się utratą zmian, możesz użyć trybu miękkiego, który pozostawi zestaw niezatwierdzonych zmian (co właśnie zmieniłeś). Za pomocą mieszanego resetuje kopię roboczą, ale zachowuje te zmiany, a dysk twardy po prostu całkowicie je usunie. Oto kilka zrzutów ekranu:
źródło
Jeśli chcesz usunąć zatwierdzenie, możesz to zrobić jako część interaktywnej bazy. Ale rób to ostrożnie, aby nie popsuć repozytorium.
W Sourcetree:
Sprawdź ten post na blogu Atlassian, aby uzyskać więcej informacji na temat interaktywnego bazowania w Sourcetree.
źródło
Jeśli jesteś w innej gałęzi, najpierw musisz „sprawdzić to zatwierdzenie”, aby zatwierdzić, którą chcesz usunąć, a dopiero potem „zresetuj bieżącą gałąź do tego zatwierdzenia”, wybierając poprzednie zatwierdzenie wrighta, zadziała.
źródło