Benutzer-Werkzeuge

Webseiten-Werkzeuge


tools:git

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
tools:git [2016/02/03 21:33] admintools:git [2023/11/14 18:06] (aktuell) – Git-Dokumentation admin
Zeile 1: Zeile 1:
 ====== git ====== ====== git ======
 +
 +===== Dokumentation =====
 +
 +  * [[https://git-scm.com/docs|Offizielle Git-Referenz]]
 +  * [[https://jvns.ca/blog/2023/11/01/confusing-git-terminology/|Julia Evans: Confusing git terminology]]
  
 ===== Website Deployment mit Git ===== ===== Website Deployment mit Git =====
Zeile 5: Zeile 10:
 Eine gute Anleitung ist auf der [[http://www.bk2k.info/zeige/website-deployment-mit-git.html|Website von Benjamin Kott]] zu finden. Eine gute Anleitung ist auf der [[http://www.bk2k.info/zeige/website-deployment-mit-git.html|Website von Benjamin Kott]] zu finden.
  
 +----
 +
 +===== Commits =====
 +
 +==== Letzten commit ändern ====
 +
 +Bei nachfolgenden Anpassungen, die zum letzten commit gehören, kann per ''git commit --amend'' den letzten commit ergänzen.\\
 +Auch wer nur einen Tippfehler in der letzten Commit-Nachricht korrigieren möchte kann diesen Befehl verwenden, hier muss dann vorher keine Datei in den Staging-Bereich gebracht werden.
 +
 +<code>
 +git add korrigierte-datei.php
 +git commit --amend
 +</code>
 +
 +==== Letzten commit "löschen" ====
 +
 +Mit diesem Befehl wird der Branch auf den vorletzten Commit zurückgesetzt. Der letzte Commit ist in diesem Branch dann nicht mehr vorhanden.
 +
 +<code>
 +git reset --hard HEAD^
 +</code>
 +
 +==== Vorherigen commit "löschen" ====
 +
 +Wenn nicht der letzte, sondern einer der vorherigen Commits aus der Historie entfernt werden muss, kann man ''git cherry-pick'' verwenden:
 +
 +**git-Historie:**
 +<code>
 +b257cb2  -- [HEAD]    [TASK] Der neueste Commit; soll behalten werden
 +d26c6b7  -- [HEAD^]   [MESSED-UP] Dieser Commit muss gelöscht werden!
 +522d6c5  -- [HEAD^^]  [FEATURE] Letzter sauberer Stand vor dem Problem
 +</code>
 +
 +**Anleitung:**
 +<code>
 +# 1. Den Commit vor dem zu entfernenden Commit in der Historie suchen (z.B. 522d6c5):
 +git log --oneline
 +
 +# 2. Neuen Branch anlegen mit dem letzten sauberen Stand:
 +git checkout -b tempfix 522d6c5
 +
 +# 3. Nun im neuen Branch alle Commits selektiv hinzufügen,
 +#    die nach dem Problem-Commit folgten und behalten werden sollen:
 +git cherry-pick b257cb2
 +
 +# 4. Wechsel auf den alten, fehlerhaften Branch:
 +git checkout <branch>
 +
 +# 5. Hard reset auf den letzten sauberen Stand:
 +git reset --hard 522d6c5
 +
 +# 6. Die mit cherry-pick in den neuen Branch übernommenen Commits mergen:
 +git merge tempfix
 +</code>
 +
 +==== Datei aus Index entfernen, ohne sie zu löschen ====
 +
 +Hiermit wird eine Datei aus dem git Repository entfernt, verbleibt aber als Datei am Speicherort. Zu beachten ist, dass sie dann ggf. auch auf externen Repositories (remote) verbleibt.
 +
 +<code>
 +git rm --cached example.txt 
 +</code>
 +
 +----
 +
 +===== Tags =====
 +
 +==== Tags auflisten ====
 +
 +<code>
 +# Alle lokalen Tags auflisten:
 +git tag
 +
 +# Tags von Remote auflisten:
 +git ls-remote --tags origin
 +
 +# Tags
 +git tag -l "9.5*"
 +</code>
 +
 +==== Annotierte Tags erstellen ====
 +
 +<code>
 +git tag -a 10.4.1 -m "[RELEASE] Release of version 10.4.1"
 +git tag -a 9.5.1 -m "[RELEASE] Release of version 9.5.1"
 +git tag -a 8.7.1 -m "[RELEASE] Release of version 8.7.1"
 +</code>
 +
 +==== Tags in Repository pushen ====
 +
 +<code>
 +# Einzelnen Tag pushen. Schema: git push origin <tagname>
 +git push origin 10.4.1
 +
 +# Alle Tags pushen, die noch nicht remote vorliegen:
 +git push origin --tags
 +
 +# Pushen von Commits sowie zugänglicher Tags (= keine Tags aus nicht vorliegenden Branches):
 +git push --follow-tags
 +</code>
 +
 +----
 +
 +===== cherry-pick =====
 +
 +==== Änderungen in Branch laden, ohne zu committen ====
 +
 +Mit dem ''-n'' Flag können wir Commits in einen anderen Branch laden, ohne dass dort ein neuer Commit durchgeführt wird. Die Änderungen werden stattdessen auf den Working Tree und den Index angewendet.
 +
 +<code>
 +git cherry-pick -n acf12f33
 +</code>
 +
 +----
 +===== Branches =====
 +
 +==== Aktuellen Branch mit Remote-Branch verknüpfen ====
 +
 +<code>
 +git branch --set-upstream-to origin/branchname
 +</code>
 +
 +----
 +
 +===== .gitignore =====
 +
 +==== Dateien und Ordner global ignorieren ====
 +
 +<code>
 +# 1. Neue Datei im User-Verzeichnis anlegen:
 +touch ~/.gitignore_global
 +
 +# 2. Datei als globale Variable konfigurieren:
 +git config --global core.excludesfile ~/.gitignore_global
 +
 +# 3. Zu ignorierende Patterns in der Datei ergänzen:
 +nano ~/.gitignore_global
 +</code>
 +
 +----
 ===== Fehlerbehebung ===== ===== Fehlerbehebung =====
  
tools/git.1454531629.txt.gz · Zuletzt geändert: 2016/02/03 21:33 von admin