Howto git

zdia edited this page Sep 13, 2010 · 12 revisions

Hints taken from Scott Chacon’s book “Pro Git”

Working in a small project

To get the server repository: git clone git@github.com:zdia/gorilla.git

To fix local changes: git commit -am “My commit description”

Before you upload your changes it is necessary to synchronize the local clone with the server repository:

git fetch origin
git merge origin/branchname

To upload the changes to the server into the branch master: git push origin master

You want to know before you push if there is any change on the server and so you get at first the commit history: git log --no-merges origin/master

To create a branch or make it the actual: git checkout -b branchname

To upload a branch onto the server: git push origin branch

To make a branch the actual: git checkout branchname

To merge a branch with the actual checkout branch: git merge branchname

To delete a branch: git branch -d testing

To get the commit history:
git log --pretty=oneline
git log --date=short --pretty=format:“%ad: %s” --since=“4 month ago”

Tagging:

To create a tag: git tag -a commitkey -m “tag description”

To push all tags to the server: git push origin --tags

To push one tag to the server: git push origin tag tagname

Deleting

einen lokalen branch löschen: git branch -d branchname

einen lokalen tag löschen: git tag -d tagname

einen remote branch löschen: git push origin :branchname

einen remote tag löschen: git push origin :tagname

Ein Projekt verwalten

Die Commit-Nachricht nachträglich ändern

git format-patch HEAD^^^

Es werden Dateien in der Form 0001-commit-message erzeugt, die die Commit-Diffs und Metadaten enthalten. Ein Hinweis zu den drei Caret Symbolen: Füge einfach eins pro Commit hinzu, die du zurück gehen möchtest, und sei konsistent! Update: Auf die letzten Commits kannst du auch mit der Syntax HEAD~n verweisen, in diesem Beispiel würden wir HEAD~3 verwenden. Fahre fort und bearbeite diese Dateien mit deinem Lieblingseditor, so dass sie die passenden Informationen erhalten. Sobald du fertig bist, setzt du dein Repository um ein paar Commits zurück:

git reset --hard HEAD^^^

Jetzt kann jeder Commit angewendet werden und die Informationen werden behoben. Stelle die richtige Reihenfolge sicher! (gewöhnlich in aufsteigender Reihenfolge). Erstelle nun die Commits:

git am < 0001...
git am < 0002...
git am < 0003...

Wenn du jetzt git log überprüfst, solltest du die richtigen Informationen sehen. Ist etwas schief gegangen, bist du mit folgendem Kommando wieder am Ausgangspunkt:

git reset --hard master
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.