Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| tools:git [2016/02/03 21:33] – admin | tools:git [2023/11/14 18:06] (aktuell) – Git-Dokumentation admin | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== git ====== | ====== git ====== | ||
| + | |||
| + | ===== Dokumentation ===== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| ===== Website Deployment mit Git ===== | ===== Website Deployment mit Git ===== | ||
| Zeile 5: | Zeile 10: | ||
| Eine gute Anleitung ist auf der [[http:// | Eine gute Anleitung ist auf der [[http:// | ||
| + | ---- | ||
| + | |||
| + | ===== Commits ===== | ||
| + | |||
| + | ==== Letzten commit ändern ==== | ||
| + | |||
| + | Bei nachfolgenden Anpassungen, | ||
| + | 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. | ||
| + | |||
| + | < | ||
| + | git add korrigierte-datei.php | ||
| + | git commit --amend | ||
| + | </ | ||
| + | |||
| + | ==== Letzten commit " | ||
| + | |||
| + | Mit diesem Befehl wird der Branch auf den vorletzten Commit zurückgesetzt. Der letzte Commit ist in diesem Branch dann nicht mehr vorhanden. | ||
| + | |||
| + | < | ||
| + | git reset --hard HEAD^ | ||
| + | </ | ||
| + | |||
| + | ==== Vorherigen commit " | ||
| + | |||
| + | Wenn nicht der letzte, sondern einer der vorherigen Commits aus der Historie entfernt werden muss, kann man '' | ||
| + | |||
| + | **git-Historie: | ||
| + | < | ||
| + | b257cb2 | ||
| + | d26c6b7 | ||
| + | 522d6c5 | ||
| + | </ | ||
| + | |||
| + | **Anleitung: | ||
| + | < | ||
| + | # 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 < | ||
| + | |||
| + | # 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 | ||
| + | </ | ||
| + | |||
| + | ==== 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. | ||
| + | |||
| + | < | ||
| + | git rm --cached example.txt | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Tags ===== | ||
| + | |||
| + | ==== Tags auflisten ==== | ||
| + | |||
| + | < | ||
| + | # Alle lokalen Tags auflisten: | ||
| + | git tag | ||
| + | |||
| + | # Tags von Remote auflisten: | ||
| + | git ls-remote --tags origin | ||
| + | |||
| + | # Tags | ||
| + | git tag -l " | ||
| + | </ | ||
| + | |||
| + | ==== Annotierte Tags erstellen ==== | ||
| + | |||
| + | < | ||
| + | git tag -a 10.4.1 -m " | ||
| + | git tag -a 9.5.1 -m " | ||
| + | git tag -a 8.7.1 -m " | ||
| + | </ | ||
| + | |||
| + | ==== Tags in Repository pushen ==== | ||
| + | |||
| + | < | ||
| + | # Einzelnen Tag pushen. Schema: git push origin < | ||
| + | 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 | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== cherry-pick ===== | ||
| + | |||
| + | ==== Änderungen in Branch laden, ohne zu committen ==== | ||
| + | |||
| + | Mit dem '' | ||
| + | |||
| + | < | ||
| + | git cherry-pick -n acf12f33 | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | ===== Branches ===== | ||
| + | |||
| + | ==== Aktuellen Branch mit Remote-Branch verknüpfen ==== | ||
| + | |||
| + | < | ||
| + | git branch --set-upstream-to origin/ | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== .gitignore ===== | ||
| + | |||
| + | ==== Dateien und Ordner global ignorieren ==== | ||
| + | |||
| + | < | ||
| + | # 1. Neue Datei im User-Verzeichnis anlegen: | ||
| + | touch ~/ | ||
| + | |||
| + | # 2. Datei als globale Variable konfigurieren: | ||
| + | git config --global core.excludesfile ~/ | ||
| + | |||
| + | # 3. Zu ignorierende Patterns in der Datei ergänzen: | ||
| + | nano ~/ | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| ===== Fehlerbehebung ===== | ===== Fehlerbehebung ===== | ||