Ich verwende Sourcetree für Windows für ein Git-Repository und möchte ein nicht verschobenes Commit rückgängig machen.
Ist das möglich? Wenn ich "Commit zurücksetzen" mache, wird ein zweites Commit erstellt, das das erste Commit zurücksetzt, aber ich möchte nicht, dass das erste Commit überhaupt in meiner Quellcodeverwaltung angezeigt wird.
Ich könnte mein lokales Repository auch löschen und es ohne mein lokales Commit erneut abrufen, aber vielleicht gibt es einen anderen Weg?
atlassian-sourcetree
datasourcecontrol
deimos1988
quelle
quelle
Antworten:
Ein Soft-Reset behält Ihre lokalen Änderungen bei.
Quelle: https://answers.atlassian.com/questions/153791/how-should-i-remove-push-commit-from-sourcetree
Bearbeiten
Info
git revert
: Dieser Befehl erstellt ein neues Commit, das andere Commits rückgängig macht. Wenn Sie beispielsweise ein Commit haben, das eine neue Datei hinzufügt, können Sie ein Commit erstellen,git revert
mit dem die neue Datei gelöscht wird.Informationen zum Anwenden eines Soft-Reset: Angenommen, Sie haben die Commits
A
fürE
(A---B---C---D---E
) und möchten das letzte Commit (E
) löschen . Anschließend können Sie zum Festschreiben einen Soft-Reset durchführenD
. Bei einem Soft-Reset wird das CommitE
aus git gelöscht, die lokalen Änderungen bleiben jedoch erhalten. Weitere Beispiele finden Sie in der Dokumentation zum Zurücksetzen des Git .quelle
Wenn Sie den Protokolleintrag auswählen, zu dem Sie zurückkehren möchten, können Sie auf "Auf dieses Commit zurücksetzen" klicken. Verwenden Sie diese Option nur, wenn Sie die Änderungen für das umgekehrte Festschreiben nicht vorgenommen haben. Wenn Sie befürchten, die Änderungen zu verlieren, können Sie den Soft-Modus verwenden, der eine Reihe nicht festgeschriebener Änderungen hinterlässt (was Sie gerade geändert haben). Wenn Sie die gemischte Version verwenden, wird die Arbeitskopie zurückgesetzt, diese Änderungen bleiben jedoch erhalten, und ein Hard wird die Änderungen nur vollständig entfernen. Hier sind einige Screenshots:
quelle
Wenn Sie ein Commit löschen möchten, können Sie dies als Teil einer interaktiven Rebase tun. Aber seien Sie vorsichtig, damit Sie Ihr Repo nicht durcheinander bringen.
In Sourcetree:
In diesem Atlassian-Blogbeitrag erfahren Sie mehr über interaktives Rebasing in Sourcetree.
quelle
Wenn Sie sich in einem anderen Zweig befinden, müssen Sie zuerst "auf dieses Commit prüfen", um ein Commit zu erhalten, das Sie löschen möchten. Erst dann funktioniert "Zurücksetzen des aktuellen Zweigs auf dieses Commit", wenn Sie das vorherige Wright-Commit auswählen.
quelle