Änderungen in Git rückgängig machen

John Wachira 15 Februar 2024
  1. Verwenden Sie den Befehl git log, um den Verlauf der Commits in Git zu überprüfen
  2. Verwenden Sie den Befehl git clean, um Änderungen in Git rückgängig zu machen
  3. Verwenden Sie den Befehl git revert, um Änderungen in Git rückgängig zu machen
  4. Verwenden Sie den Befehl git reset, um Änderungen in Git rückgängig zu machen
Änderungen in Git rückgängig machen

Dieses Tutorial behandelt die verschiedenen Befehle zum Rückgängigmachen von Änderungen an Ihren lokalen und Remote-Repositories. Diese Befehle umfassen:

  1. git clean
  2. git reset
  3. 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.

git checkout

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.

  1. 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
    
  2. 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.

  1. 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.

  1. 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")
```
  1. Der Befehl git reset --soft ändert nur den Commit-Verlauf. Der Standardzeiger ist immer der HEAD.

    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 Wachira avatar John Wachira avatar

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.

LinkedIn

Verwandter Artikel - Git Reset