Veit Schiele Communications

Veit Schiele Communications

Git-Undo

erstellt von Veit Schielezuletzt verändert: 30.01.2014 20:21 © Veit Schiele 2011–2014

Ändern des letzten Commits

Mit der --amend-Option lässt sich der letzte Commit-Aufruf ändern, also z.B.:

$ git commit -m 'Initial commit'
$ git add <forgotten file>
$ git commit --amend

git add zurücknehmen

Schon beim Aufruf von git add erhalten Sie den Hinweis, wie dem Index hinzugefügte Dateien wieder entfernt werden können:

$ git add *
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   bootstrap/bootstrap/css/bootstrap-responsive.css
#   new file:   bootstrap/bootstrap/css/bootstrap-responsive.min.css
#   new file:   bootstrap/bootstrap/css/bootstrap.css
#   new file:   bootstrap/bootstrap/css/bootstrap.min.css
$ git reset HEAD bootstrap/bootstrap/css/*
$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   bootstrap/bootstrap/
nothing added to commit but untracked files present (use "git add" to track)

Dateiänderungen rückgängig machen

git checkout checkt die Dateien erneut aus. Hiermit lassen sich zwischenzeitlich gemachte Änderungen im eigenen Arbeitsverzeichnis rückgängig machen, also z.B.:

$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   README.rst
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   bootstrap/bootstrap/

HEAD zurücksetzen

  1. Mit git log identifizieren wir zunächst den Hash-Wert desjenigen Commits, zu dem wir zurückkehren wollen:

    $ git log
    commit 887881951931413468fd20b9e1f5144193ac7025
    Author: veit <kontakt@veit-schiele.de>
    Date:   Sun Mar 3 14:53:45 2013 +0100
    
        Restructured docs
    
    commit 653550fbf0fb75c4b8469bcccae41002f689309a
    Author: veit <kontakt@veit-schiele.de>
    Date:   Sun Mar 3 14:38:22 2013 +0100
    
        Justified toc
    
    …
    
  2. Anschließend ändern wir den Index und das Arbeitsverzeichnis auf den Stand des gewünschten Commits:

    $ git reset --hard 653550fbf0fb75c4b8469bcccae41002f689309a
    
  3. Nun ändern wir Head einen Commit zurück:

    $ git reset --soft HEAD@{1}
    
  4. Schließlich Commiten wir unsere Änderung:

    $ git commit -m 'Reverted to justified toc'