Änderungen in Git rückgängig machen
-
Verwenden Sie den Befehl
git log
, um den Verlauf der Commits in Git zu überprüfen -
Verwenden Sie den Befehl
git clean
, um Änderungen in Git rückgängig zu machen -
Verwenden Sie den Befehl
git revert
, um Änderungen in Git rückgängig zu machen -
Verwenden Sie den Befehl
git reset
, um Änderungen in Git rückgängig zu machen
Dieses Tutorial behandelt die verschiedenen Befehle zum Rückgängigmachen von Änderungen an Ihren lokalen und Remote-Repositories. Diese Befehle umfassen:
git clean
git reset
git revert
Verwenden Sie den Befehl git log
, um den Verlauf der Commits in Git zu überprüfen
Lassen Sie uns zunächst sehen, wie wir die Historie unserer Commits überprüfen. Wir überprüfen dies mit dem Befehl git log
.
pc@JOHN MINGW64 ~/Git (main)
$ git log
commit 195e5c362975354d62ebc469da2e3cd276c7da03 (HEAD -> main)
Author: John <wachirajohnie11@gmail.com>
Date: Mon Feb 21 12:11:12 2022 +0300
commit 7b19db4b35c1ca15e5ecb8df1f805d44aad62e5f
Author: John <wachirajohnie11@gmail.com>
Date: Mon Feb 21 10:09:31 2022 +0300
first commit
Der Befehl zeigt nur den Verlauf Ihres Arbeitszweigs an. Verwenden Sie den folgenden Befehl, um nach allen Zweigen zu suchen.
git log --branches=*
Verwenden Sie den Befehl git checkout
, um einen bestimmten Commit anzuzeigen, wie unten gezeigt.
Jetzt können Sie auf Dateien zugreifen, ohne den aktuellen Status Ihres Projekts zu manipulieren. Verwenden Sie den Befehl git checkout main
, um zum aktuellen Projektarbeitsbereich zurückzukehren.
Verwenden Sie den Befehl git clean
, um Änderungen in Git rückgängig zu machen
Wir verwenden den Befehl git clean
, um Änderungen an nicht getrackten Dateien rückgängig zu machen. Sie können einen git clean
-Befehl nicht rückgängig machen.
-
Die Option
git clean -n
fungiert als Testbefehl. Es zeigt nur die nicht verfolgten Dateien an, löscht sie jedoch nicht.Beispiel:
pc@JOHN MINGW64 ~/Git (main) $ git clean -n Would remove Hello world.txt Would remove Test1.txt
-
Der Befehl
git clean --force
löscht alle ungetrackten Dateien und Ordner in Ihrem Arbeitsverzeichnis. Sie können den Befehl.gitignore
verwenden, um Ausnahmen auszulösen.Beispiel:
pc@JOHN MINGW64 ~/Git (main) $ git clean --force Removing Hello world.txt Removing Test1.txt
Lassen Sie uns überprüfen, ob sich die Dateien in unserem Verzeichnis befinden.
pc@JOHN MINGW64 ~/Git (main) $ git status On branch main nothing to commit, working tree clean
Die Ausgabe zeigt einen sauberen Zweig. Der Befehl hat die Dateien erfolgreich gelöscht.
Verwenden Sie den Befehl git revert
, um Änderungen in Git rückgängig zu machen
Der Befehl git revert
wirkt auf die durch einen Commit vorgenommenen Änderungen und überschreibt sie. Wir verwenden es, um zu einem Punkt zurückzukehren und Änderungen vorzunehmen.
Lassen Sie uns den Befehl verwenden, um unseren first commit
zu ändern.
git revert first commit
#[first commit [7b19db4] Revert 'first commit'
#1 file changed, 1 deletion(-)
Sie müssen eine Commit-Referenz übergeben.
Verwenden Sie den Befehl git reset
, um Änderungen in Git rückgängig zu machen
Der letzte Befehl, den wir behandeln werden, ist git reset
. Dieser Befehl wirkt auf den HEAD
.
-
Die Option
git reset --hard
ändert den angegebenen Commit. Alle Änderungen im Staging-Index und in Ihrem Arbeitsverzeichnis stimmen jedoch mit den Änderungen überein. Alle bereitgestellten Commits gehen dabei verloren.Beispiel:
$ git reset --hard HEAD is now at 78129a6 Revert "$first commit"
Der Befehl führt einen Hard-Reset auf den HEAD
durch.
- Der Befehl
git reset --mixed
speichert die Änderungen aus dem Staging-Index in Ihr Arbeitsverzeichnis.
Beispiel:
```bash
$ git reset --mixed
Unstaged changes after reset:
M .bash_history
M text.txt.txt
M text.txt.txt.bak
```
Der Befehl hat die rückgängig gemachten Änderungen aus der Ausgabe in unserem Arbeitsverzeichnis gespeichert. Lassen Sie uns den Status unserer Filiale überprüfen.
```bash
$ git status
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .bash_history
modified: text.txt.txt
modified: text.txt.txt.bak
Untracked files:
(use "git add <file>..." to include in what will be committed)
.bash_history.bak
no changes added to commit (use "git add" and/or "git commit -a")
```
-
Der Befehl
git reset --soft
ändert nur den Commit-Verlauf. Der Standardzeiger ist immer derHEAD
.Beispiel:
pc@JOHN MINGW64 ~/Git (main) $ git reset --soft pc@JOHN MINGW64 ~/Git (main) $ git status On branch main Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: .bash_history modified: text.txt.txt modified: text.txt.txt.bak Untracked files: (use "git add <file>..." to include in what will be committed) .bash_history.bak no changes added to commit (use "git add" and/or "git commit -a")
Aus der obigen Ausgabe sind unser Arbeitsverzeichnis und der Staging-Index unberührt. Verwenden Sie den Hash Ihres Commit, um ein bestimmtes Commit zurückzusetzen.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedInVerwandter Artikel - Git Reset
- Eine Git-Zusammenführung mit Konflikten rückgängig machen
- Machen Sie den Development-Branch mit dem Master-Branch identisch
- Unterschied zwischen den Git-Befehlen `Reset`, `Revert` und `Checkout`.
- Unterschied zwischen Git RM --Cached und Git Reset File
- Verschiedene Methoden zum Entfernen lokaler Git-Änderungen