===== Git ===== ==== Mes réglages ==== === Git diff-so-fancy === Pour avoir des diffs plus sympa installer [[https://github.com/so-fancy/diff-so-fancy|diff-so-fancy]]. Ensuite lire la doc pour le régler ou copier les réglages plus bas dans la page (.gitconfig) === Git prompt === Pour avoir un prompt plus sympa avec des icônes qui indiques le statut de la copie de travail, utiliser [[https://github.com/magicmonty/bash-git-prompt|bash-git-prompt]]. Une fois fait, si vous voulez afficher la légende lié au symboles, tapez dans le shell : git_prompt_help //Attention, il faut être dans un répertoire GIT// === Git status === Pour lister le contenu d'un dossier //untracked//, modifier la variable de configuration suivante : git config --global status.showUntrackedFiles all //L'équivalent sans cette configuration et la commande// ''git status -u''. ==== Modification remote ==== Pour lister les URL $ git remote -v origin git://github.com/xxx/xxx.git (fetch) origin git://github.com/xxx/xxx.git (push) Pour changer l'URL du remote $ git remote set-url origin [new url] Pour changer le nom du remote $ git remote rename [old] [new] ==== Diverses commandes ==== === Supprimer une branche sur le server distant === git push --delete repo branch === Avoir une information sur la création d'une branche === git reflog --date=local | grep [branch] === Conflit === Lors d'un merge, si l'on veut afficher l'ancêtre commun de la partie en conflit, utiliser la commande suivante et afficher le fichier git checkout --conflict=diff3 [nom du fichier] === Merge === Lors d'un merge, si on veut ignorer les retours à la lignes, espaces et indentations des fichiers, utiliser la commande suivante : git merge -Xignore-all-space [branch] === Faire le ménage dans les branches === Un alias pour supprimer en locale les branches mergées. git_delete_branches_merged='git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d' // ou // git_delete_branches_merged='git branch --merged origin/integ | grep -v '\''integ$'\'' | xargs -r git branch -d' === .gitconfig === [user] name = email = [color] # Enable colors in color-supporting terminals ui = true [core] # Don't paginate output by default pager = test -x \"$(which diff-so-fancy)\" && diff-so-fancy | less --tabs=4 -RFX || less -RFX editor = vim [color "branch"] # Blue on black is hard to read in git branch -vv: use cyan instead upstream = cyan [alias] #lg = log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(auto)%d%C(reset)' lolc = log --graph --pretty='%Cred%h%Creset %Cgreen(%cr) %C(bold blue)<%an>%Creset -%C(auto)%d%Creset %s%n%b' diffc = diff --color-words=. [status] showUntrackedFiles = all [color "diff-highlight"] oldNormal = red bold oldHighlight = red bold 52 newNormal = green bold newHighlight = green bold 22 [color "diff"] meta = yellow frag = magenta bold commit = yellow bold old = red bold new = green bold whitespace = red reverse [diff-so-fancy] changeHunkIndicators = true markEmptyLines = true [merge] conflictstyle = diff3 [rerere] enabled = true autoupdate = true