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
Letzte ÜberarbeitungBeide Seiten, nächste Überarbeitung
tools:git [2017/05/08 22:41] – [Befehle] admintools:git [2021/10/15 20:15] – gitignore admin
Zeile 5: Zeile 5:
 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.
  
-===== Befehle =====+---- 
 + 
 +===== Commits =====
  
 ==== Letzten commit ändern ==== ==== Letzten commit ändern ====
Zeile 16: Zeile 18:
 git commit --amend git commit --amend
 </code> </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.txt · Zuletzt geändert: 2023/11/14 18:06 von admin