Benutzer-Werkzeuge

Webseiten-Werkzeuge


git

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
git [2020/12/30 14:16] – [Sparse Checkout] olligit [2024/05/20 10:41] (aktuell) – [git pull oder fetch hängt] olli
Zeile 193: Zeile 193:
 </code> </code>
 Der Name muss nicht vollständig angegeben werden. 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, kann der Parameter ''%%--%%all'' hinzugefügt werden.   Um nicht nur den aktuellen Branch, sondern alle zu durchsuchen, kann der Parameter ''%%--%%all'' hinzugefügt werden.  
  
Zeile 229: Zeile 230:
 ''new-branch-name'' ist der Name, den der Branch im neuen Repository gekommen soll. ''new-branch-name'' ist der Name, den der Branch im neuen Repository gekommen soll.
 ''url%%://%%to/new/repository.git'' ist der Pfad zum git-Repository, dies kann auch ein lokaler Pfad sein. ''url%%://%%to/new/repository.git'' ist der Pfad zum git-Repository, dies kann auch ein lokaler Pfad sein.
 +
 +===== Leere Verzeichnisse commiten =====
 +Leere Verzeichnisse lassen sich nicht einchecken, der [[https://stackoverflow.com/questions/115983/how-can-i-add-an-empty-directory-to-a-git-repository/932982#932982|hier]] empfohlenen Workaround ist eine ''.gitignore''-Datei in dem Verzeichnis mit folgendem Inhalt:
 +<code>
 +# Ignore everything in this directory
 +*
 +# Except this file
 +!.gitignore
 +</code>
 +Andere Möglichkeit sind leere Dateien wie ''.keep'' oder ''.gitkeep'' in dem Verzeichnis.
 +Eine Diskussion dazu findet sich auch in obigem Link.
 +
 +===== git pull  oder fetch hängt =====
 +Wenn ''git pull'' oder ''fetch'' hängt, kann man ''git'' mit
 +<code bash>
 +GIT_TRACE=true git pull
 +</code>
 +ein Trace einschalten.
 +Auch die Verwendung des von Github deaktivierten, unverschlüsselten [[https://github.blog/changelog/2022-03-15-removed-unencrypted-git-protocol-and-certain-ssh-keys/| ''git://''-Protokolls]] ruft dieses Verhalten hervor (dies lässt sich im o.g. Trace allerdings nicht erkennen).
 +
 +===== 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   #aktueller Branch
 +</code>
 +
 ===== Nützliche Aliases ===== ===== Nützliche Aliases =====
 Diese Aliases können in die ~/.gitconfig eingetragen werden: Diese Aliases können in die ~/.gitconfig eingetragen werden:
Zeile 287: 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://gist.github.com/jtdp/5443498 
 +        permission-resetb = "!git diff -p --no-ext-diff --no-color --diff-filter=d | grep -E \"^(diff|old mode|new mode)\" | sed -e \"s/^old/NEW/;s/^new/old/;s/^NEW/new/\" | git apply"
 </code> </code>
  
-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.+''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:
git.1609334217.txt.gz · Zuletzt geändert: 2020/12/30 14:16 von olli