Wie kann ich meinen letzten Commit in meinem lokalen Git-Repository entfernen

Lesezeit: 2 Minuten

Benutzer-Avatar
michael

Wenn ich einen „Git-Pull“ durchführe, habe ich einen Konflikt mit dem Head-Commit. Also habe ich ein ‘git rebase –abort’ gemacht

Kann ich mein Commit in einem „Patch“ „speichern“ und dann einen Git-Pull durchführen?

Was ich nachahmen möchte ist:

  • Ich habe mich nicht verpflichtet, aber ich habe stattdessen einen ‘Git Stash’ gemacht
  • Führen Sie einen Git-Pull durch, um Zusammenführungsfehler zu vermeiden

Also muss ich irgendwie die Uhr zurückdrehen. Geht das mit Git?

Dein 7826b2 Der Patch wird immer noch einen Konflikt verursachen, wenn er nach dem Ziehen angewendet wird, aber Sie können Folgendes tun:

git reset --soft HEAD^
git stash
git pull
git stash pop # Will cause a conflict
git commit    # Re-commit 7826b2

Auch ein anderer Arbeitsablauf ist möglich:

git reset --hard HEAD^
git pull
git cherry-pick 7826b2 # Will cause a conflict

Der zweite Workflow beruht darauf, dass Git die 7826b2 commit im Reflog (man kann es sich als Papierkorb vorstellen), obwohl Sie die Änderungen, die es mit der ersten Zeile eingeführt hat, zurückgesetzt haben.

Benutzer-Avatar
James Hicks

Wenn Sie Ihre Änderungen in Ihrem lokalen Repository festgeschrieben haben, können Sie eine direkte Rebase durchführen:

git holt den Ursprung

git rebase origin/master

Dies löst Ihre lokalen Commits vom lokalen Master, wendet neue Commits vom Ursprung/Master an und gibt dann Ihre lokalen Commits wieder.

In Ihrer Situation führt dies zu einem Konflikt und Git teilt Ihnen mit, welche Dateien bearbeitet werden müssen, um den Konflikt zu lösen. Nachdem Sie dies getan haben, git add diese Dateien und dann git commit ohne Argumente, die Änderungen erneut zu übernehmen.

  • das habe ich gesucht, super.

    – Code-jaff

    14. Mai 2013 um 8:20 Uhr

Zuerst schlage ich vor, ein Backup Ihres Zweigs zu erstellen:

git branch your_branch_backup

Dann ist der einfachste Weg:

git reset --soft <commit> #Go back in time but without loosing your changes
git stash                 #Stash your changes
git pull                  #Refresh your branch with origin
git stash pop             #Re-apply your changes on the refreshed branch 

Dann kannst du wie gewohnt zusagen

Es gibt einen Weg, in der Tat in Git, ich bin sicher, es gibt eine Vielzahl von Möglichkeiten, dies zu tun …

Du könntest es tun:

git stash     # Stash your changes
git pull      # Pull the changes
git stash pop # Pop your stash

Du könntest es tun:

git pull --rebase # Bring in the changes and apply yours on top of it.

Du könntest es tun:

git stash     # Stash your changes
git checkout <commit> # Pull a specific commit.
git stash pop # Pop your stash

Ich hoffe es hilft.

1257490cookie-checkWie kann ich meinen letzten Commit in meinem lokalen Git-Repository entfernen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy