git
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
git [2015/02/03 10:24] – [Mehrere Remotes] olli | git [2024/05/20 10:41] (aktuell) – [git pull oder fetch hängt] olli | ||
---|---|---|---|
Zeile 91: | Zeile 91: | ||
benutzen. Diese Datei ist dann automatisch im Staging-Bereich. | benutzen. Diese Datei ist dann automatisch im Staging-Bereich. | ||
+ | ===== Inhalt des Stash anzeigen ===== | ||
+ | Um den Inhalt des Stash anzuzeigen, kann der Befehl | ||
+ | <code bash> | ||
+ | git stash show -p | ||
+ | </ | ||
+ | verwendet werden. | ||
+ | Ältere Stashes können mit | ||
+ | <code bash> | ||
+ | git stash show -p stash@{1} | ||
+ | </ | ||
+ | angezeigt werden. | ||
===== Grafisches git blame ===== | ===== Grafisches git blame ===== | ||
Mit | Mit | ||
Zeile 175: | Zeile 186: | ||
</ | </ | ||
wird ein Trockenlauf durchgeführt. Mit dem Parameter '' | wird ein Trockenlauf durchgeführt. Mit dem Parameter '' | ||
+ | |||
+ | ===== Alle Commits eines Autors anzeigen ===== | ||
+ | Um alle Commits eines bestimmten Autors aufzulisten, | ||
+ | <code bash> | ||
+ | git log --author=" | ||
+ | </ | ||
+ | Der Name muss nicht vollständig angegeben werden. | ||
+ | Statt des Namens kann auch eine Email-Adresse (oder ein Teil davon) angegeben werden. | ||
+ | Um nicht nur den aktuellen Branch, sondern alle zu durchsuchen, | ||
+ | |||
+ | ===== Prüfen, ob Branch einen Commit enthält ===== | ||
+ | Um zu prüfen, ob ein Branch einen gegebenen Commit enthält kann man den folgenden Befehl verwenden: | ||
+ | <code bash> | ||
+ | git branch -a --contains < | ||
+ | </ | ||
+ | |||
+ | <WRAP important round> | ||
+ | Commits, die über einen Rebase oder Cherry-Pick ins Repo gekommen sind, werden so nicht gefunden. | ||
+ | </ | ||
+ | |||
+ | ===== Autor nachträglich ändern ===== | ||
+ | Um den Autor oder die Emailadresse nachträglich zu korrigieren, | ||
+ | * [[https:// | ||
+ | * Emailadressen im Skript anpassen | ||
+ | * Skript ausführen | ||
+ | * Änderungen pushen | ||
+ | |||
+ | <WRAP important round> | ||
+ | Diese Operation schreibt die History neu. | ||
+ | Wenn die Commits schon öffentlich sind, sollte man dies nur in Ausnahmefällen tun. | ||
+ | </ | ||
+ | |||
+ | ===== Sparse Checkout ===== | ||
+ | Um nur Teile (z.B. ein Unterzeichnis) eines Repositories auszuchecken, | ||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | ===== Branch in eigenes Repository ===== | ||
+ | Um einen Branch '' | ||
+ | <code bash> | ||
+ | git push url:// | ||
+ | </ | ||
+ | '' | ||
+ | '' | ||
+ | |||
+ | ===== Leere Verzeichnisse commiten ===== | ||
+ | Leere Verzeichnisse lassen sich nicht einchecken, der [[https:// | ||
+ | < | ||
+ | # Ignore everything in this directory | ||
+ | * | ||
+ | # Except this file | ||
+ | !.gitignore | ||
+ | </ | ||
+ | Andere Möglichkeit sind leere Dateien wie '' | ||
+ | Eine Diskussion dazu findet sich auch in obigem Link. | ||
+ | |||
+ | ===== git pull oder fetch hängt ===== | ||
+ | Wenn '' | ||
+ | <code bash> | ||
+ | GIT_TRACE=true git pull | ||
+ | </ | ||
+ | ein Trace einschalten. | ||
+ | Auch die Verwendung des von Github deaktivierten, | ||
+ | |||
+ | ===== git Archive ===== | ||
+ | Um einen Branch in eine Zip-Datei zu packen, können die folgenden Kommandos verwendet werden: | ||
+ | <code bash> | ||
+ | git archive -o zipfile.zip master #master Branch | ||
+ | git archive -o zipfile.zip HEAD # | ||
+ | </ | ||
+ | |||
===== Nützliche Aliases ===== | ===== Nützliche Aliases ===== | ||
Diese Aliases können in die ~/ | Diese Aliases können in die ~/ | ||
Zeile 233: | Zeile 315: | ||
git rebase --whitespace=fix HEAD~ && \ | git rebase --whitespace=fix HEAD~ && \ | ||
git reset --soft HEAD~ ; \ | git reset --soft HEAD~ ; \ | ||
- | fi" | + | fi" |
+ | #resets binary permission to the ones in the repo | ||
+ | # from https:// | ||
+ | permission-resetb = "!git diff -p --no-ext-diff --no-color --diff-filter=d | grep -E \" | ||
</ | </ | ||
- | git sed ersetzt in allen Dateien im Repository old-name durch new-name (siehe Bespiel). Dies ist sicherer als die entsprechende Lösung mit "find .", da dabei Verwaltungsdateien von Git mit verändert werden können. | + | '' |
Beispiel: | Beispiel: | ||
Zeile 245: | Zeile 330: | ||
===== Links ===== | ===== Links ===== | ||
* [[http:// | * [[http:// | ||
- | * [[https:// | + | * [[https:// |
+ | * [[https:// | ||
git.1422955468.txt.gz · Zuletzt geändert: 2015/02/03 10:24 von olli