===== 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