Je ne connaissais pas git worktree
, ça permet de créer un clone du répertoire de votre projet courant pour bosser sur une autre branche sans avoir à "abandonner" ce que vous faisiez comme git stash
l'imposerait.
Très pratique pour faire des code reviews en local sans perturber votre travail en cours.
Une liste assez longue d'options populaires pour Git. On a tendance à oublier que Git propose énormément d'options pour ajuster son comportement.
J'ai tendance à essayer de rester aussi proche que possible de la config par défaut pour éviter les différences avec d'autres développeurs, mais c'est bien de savoir que ces options existent.
Que contient le répertoire .git
?
Un article en défaveur du fast-forward lors d'un merge Git.
Une introduction aux monorepos, une nouvelle façon de gérer les dépendances entre applications qui utilisent des technos et des config similaires. C'est une alternative aux librairies publiées sur nom et à la duplication de code.
Ça vient avec un ensemble de contrainte bien sûr, mais l'approche est intéressante.
Sous Windows, petit script à coller dans ~/.bashrc
pour que l'agent SSH démarre lors de votre premier lancement de Git Bash et soit conservé d'un terminal à l'autre.
env=~/.ssh/agent.env
agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }
agent_load_env
# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi
unset env
Voici ma config pour lui donner un air de Cmder.
Le fichier est à mettre dans ~/.config/git/git-prompt.sh
.
PS1='\[\033]0;\w\007\]' # set window title
PS1="$PS1"'\n' # new line
PS1="$PS1"'\[\033[38;5;112m\]' # change to green 256 bits
PS1="$PS1"'\w' # current working directory
if test -z "$WINELOADERNOEXEC"
then
GIT_EXEC_PATH="$(git --exec-path 2>/dev/null)"
COMPLETION_PATH="${GIT_EXEC_PATH%/libexec/git-core}"
COMPLETION_PATH="${COMPLETION_PATH%/lib/git-core}"
COMPLETION_PATH="$COMPLETION_PATH/share/git/completion"
if test -f "$COMPLETION_PATH/git-prompt.sh"
then
. "$COMPLETION_PATH/git-completion.bash"
. "$COMPLETION_PATH/git-prompt.sh"
PS1="$PS1"'\[\033[36m\]' # change color to cyan
PS1="$PS1"'`__git_ps1`' # bash function
fi
fi
PS1="$PS1"'\[\033[0m\]' # change color
PS1="$PS1"'\n' # new line
PS1="$PS1"'λ ' # prompt
Comment customiser GitBash (le titre de la fenêtre, les couleurs et infos qui apparaissent avant le curseur, etc.).
.msixbundle
ici.msixbundle
Add-AppxPackage <nom du fichier>
Pour ajouter Git Bash dedans, aller dans les paramètres, puis Open JSON file.
Dans la partie profiles/list
, ajouter :
{
"commandline": "%PROGRAMFILES%/git/usr/bin/bash.exe -i -l",
"guid": "{00000000-0000-0000-ba54-000000000002}",
"hidden": false,
"icon": "%PROGRAMFILES%/Git/mingw64/share/git/git-for-windows.ico",
"name": "Git Bash"
}
Un outil pour trouver la commande git qui correspond à ce que vous voulez faire, en répondant à des questions.
Une explication très complète de Git.
Présentation ultra détaillée de Git.
Assez long mais extrêmement instructif ! Si vous devez apprendre Git, commencez par là. Tout est expliqué pas à pas et avec des exemples.
Un guide pour écrire vos messages de commit de manière efficace.
Ce script permet de lancer automatiquement un agent SSH lors de la première ouverture de git-bash lors de votre session. Par la suite, vous n'aurez plus besoin d'entrer le mot de passe de votre clé SSH jusqu'à la fin de votre session Windows.
L'article mentionne deux possibilité pour le nom du fichier qui contient le script. Dans mon cas, il n'y a que ~\.bashrc
qui a fonctionné.
Si vous voulez interrompre l'agent, il suffit de tuer le process ssh-agent.exe.