Benutzer-Werkzeuge

Webseiten-Werkzeuge


programming:git:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
programming:git:start [2019/08/23 14:56]
frank [debugging]
programming:git:start [2020/02/14 17:35] (aktuell)
frank [umbenannte Dateien]
Zeile 7: Zeile 7:
 <​code>​ <​code>​
 git clone --depth 1 https://​github.com/​frank-w/​BPI-R2-4.14 git clone --depth 1 https://​github.com/​frank-w/​BPI-R2-4.14
-git remote set-branches origin '​*'​ 
-git fetch --depth 1 
 </​code>​ </​code>​
  
Zeile 14: Zeile 12:
  
 <​code>​ <​code>​
-git clone --depth=50 --single-branch --branch ​v5.1-next-mt7621-phylink ​https://​github.com/​vDorst/linux-1.git mt76xx-phylink+git clone --depth ​--single-branch --branch ​5.4-main https://​github.com/​frank-w/BPI-R2-4.14 5.4-main
 </​code>​ </​code>​
 +
 +mit "​--single-branch"​ werden nur Informationen zum gewählten branch heruntergeladen
 +
 +  $ git branch -a
 +  * 5.4-main
 +    remotes/​origin/​5.4-main
 +
 +möchte man trotzdem alle branchinformationen haben nimmt man stattdessen "​--no-single-branch",​ dadurch ist aber der Download größer (depth x anzahl_branches)
 +
 +hat man nur die Sparvariante und möchte später wieder auf die anderen branches zugreifen:
 +
 +  git remote set-branches origin '​*'​
 +  git fetch --depth 1
 ===== log ===== ===== log =====
  
Zeile 63: Zeile 74:
   git remote   git remote
  
 +==== eigenes Format ====
 +
 +  git log --pretty=format:'​%C(Yellow)%h %C(Green)%ad %C(reset)%s %C(Cyan)(%an)'​ --date=short
 +
 +==== inklusive patch ====
 +
 +  git log --oneline -p
 +==== merges ====
 +
 +zuerst merge-commit ermitteln, z.B. so:
 +
 +  git log --merges
 +
 +danach kann man mit diesen Commit-Hash ermitteln, welche commits dran hängen
 +
 +  git log --no-merges --oneline <​hash>​^..<​hash>​
 +
 +Beispiel als alias:
 +
 +  logm = !git log --no-merges --oneline $1^..$1
 +
 +will man nur die Datei-Änderungen des kompletten merges sehen, kann man das so:
 +
 +  git show -m <​hash>​
 ===== diff ===== ===== diff =====
  
Zeile 160: Zeile 195:
  
 <​code>​git tag -l</​code>​ <​code>​git tag -l</​code>​
 +
 +===== lokale Änderungen ignorieren =====
 +
 +soll eine Datei im remote-repo nicht mehr auf Änderungen überwacht werden:
 +
 +  git update-index --assume-unchanged [<​file>​ ...]
 +
 +tracking wieder aktivieren:
 +
 +  git update-index --no-assume-unchanged [<​file>​ ...]
  
 ===== push ===== ===== push =====
Zeile 275: Zeile 320:
 https://​stackoverflow.com/​questions/​4826639/​repack-of-git-repository-fails https://​stackoverflow.com/​questions/​4826639/​repack-of-git-repository-fails
  
-neues ServerRepo anlegen (git init --bare) +  * neues ServerRepo anlegen (git init --bare) 
-git-config erweitern+  ​* ​git-config erweitern 
 <​code>​ <​code>​
 [http] [http]
Zeile 286: Zeile 332:
         threads = 1         threads = 1
 </​code>​ </​code>​
-- via scp die neu gepackten (auf kleine chunks) auf den Server kopieren + 
-<​code>​scp .git/​objects/​pack/​* $server:/​$pfad/​$repo/​objects/​pack/​+  * ggf. "git repack ​-a -d", dafür habe ich ein alias definiert<​code>​ 
 +cleanup = "!f() { git reflog expire --expire=now --all; git gc --aggressive --prune=now;​git repack -a -d; }; f"</​code>​ 
 +  * via scp die neu gepackten (auf kleine chunks) auf den Server kopieren 
 + 
 +<​code>​
 scp .git/​objects/​pack/​* $server:/​$pfad/​$repo/​objects/​pack/​ scp .git/​objects/​pack/​* $server:/​$pfad/​$repo/​objects/​pack/​
 scp -r .git/​packed-refs $server:/​$pfad/​$repo/​ scp -r .git/​packed-refs $server:/​$pfad/​$repo/​
-<​code>​ +</code> 
-Rechte auf dem Server anpassen (chmod -R user:group .;chmod -R g+w .) + 
-jetzt erst den push durchführen (ggf. mit ssh)+  * Rechte auf dem Server anpassen (chmod -R user:group .;chmod -R g+w .) 
 +  ​* ​jetzt erst den push durchführen (ggf. mit ssh) 
 <​code>​ <​code>​
 git push --mirror ssh://​$server/​$pfad/​$repo git push --mirror ssh://​$server/​$pfad/​$repo
Zeile 317: Zeile 369:
  
 ===== debugging ===== ===== debugging =====
-===== bisect ​=====+==== bisect ====
 * https://​stackoverflow.com/​questions/​3179498/​how-can-i-cut-down-a-git-bisect-run-using-file-paths * https://​stackoverflow.com/​questions/​3179498/​how-can-i-cut-down-a-git-bisect-run-using-file-paths
 ===== Branch ===== ===== Branch =====
Zeile 342: Zeile 394:
 zeigt alle branches (lokal/​remote) mit letztem commit und push-info (x commits hinterher/​voraus) zeigt alle branches (lokal/​remote) mit letztem commit und push-info (x commits hinterher/​voraus)
  
 +==== Branches mit bestimmten commit finden ====
 +
 +  git branch --contains <​commit-id>​
 ==== remote branches aktualisieren ==== ==== remote branches aktualisieren ====
  
Zeile 605: Zeile 660:
  
   git config credential.helper 'cache --timeout=300'​   git config credential.helper 'cache --timeout=300'​
 +  ​
 +=== windows ===
 +
 +zurücksetzen von BN/PW:
 +
 +  rundll32.exe keymgr.dll, KRShowKeyMgr
 +
 +ggf. manager neu setzen (falls openssh-dialog kommt)
 +
 +  git config --global credential.helper manager
 +
 ==== Alias ==== ==== Alias ====
     git config alias.co checkout     git config alias.co checkout
Zeile 640: Zeile 706:
    ​renames = copies    ​renames = copies
    ​renamelimit = 0    ​renamelimit = 0
 +</​code>​
 +
 +==== bash-Integration ====
 +
 +in ~/.bashrc das vorhandene PS1 anpassen:
 +
 +<​code>​
 +parseGitBranch() {
 +    git rev-parse --abbrev-ref HEAD 2> /dev/null | sed -e '​s/​\(.*\)/​(\1)/'​
 +}
 +
 +if [ "​$color_prompt"​ = yes ]; then
 +    PS1='​${debian_chroot:​+($debian_chroot)}\[\033[01;​32m\]\u@\h\[\033[00m\]:​\[\033[01;​34m\]\w\[\033[00m\] $(parseGitBranch)\n\$ '
 +else
 +    PS1='​${debian_chroot:​+($debian_chroot)}\u@\h:​\w $(parseGitBranch)\n\$ '
 +fi
 </​code>​ </​code>​
 ====== Github ====== ====== Github ======
programming/git/start.1566564990.txt.gz · Zuletzt geändert: 2019/08/23 14:56 von frank