:fr: Ressources pour configurer son environnement Git et pour travailler au quotidien :aquarius:
Ce dépôt contient quelques ressources pour configurer son environnement de travail
Un menu contextuel sera à présent disponible dans l’explorateur Windows :
$ ssh-keygen -t rsa -C "monadressemail@masociété.com" -b 4096
Saisir ou non un mot de passe (il faudra alors le saisir à chaque ouverture de Git Bash s’il est défini)
$ cat ~/.ssh/id_rsa.pub
Copier cette clé vers le presse papier
#!/bin/bash
eval `ssh-agent -s`
ssh-add ~/.ssh/id_rsa
L’installer dans le dossier par défaut (sinon il faudra adapter le chemin dans le code ci dessous)
Coller cette configuration
[mergetool]
prompt = false
keepBackup = false
keepTemporaries = false
[merge]
tool = winmerge
[mergetool "winmerge"]
name = WinMerge
trustExitCode = true
cmd = "/c/Program\\ Files\\ \\(x86\\)/WinMerge/WinMergeU.exe" -u -e -dl \"Local\" -dr \"Remote\" $LOCAL $REMOTE $MERGED
[diff]
tool = winmerge
[difftool "winmerge"]
name = WinMerge
trustExitCode = true
cmd = "/c/Program\\ Files\\ \\(x86\\)/WinMerge/WinMergeU.exe" -u -e $LOCAL $REMOTE
$ git mergetool
$ git config --global user.name "Prénom NOM"
$ git config --global user.email "prénom.nom@masociété.com"
$ git config --global http.sslVerify false
# Log des commits locaux et distants au format résumé et graphique
$ git config --global alias.lg "log --graph --oneline --decorate"
# Log des commits locaux uniquement au format résumé et graphique
$ git config --global alias.llg "log --oneline --graph --branches --not --remotes"
# Commit avec message
$ git config --global alias.cm "commit -m"
# Affichage du statut
$ git config --global alias.st status
$ git lg
$ git cm "mon message de description de commit"
$ git st
git config --global pull.rebase preserve
Par exemple, pour fusionner la branche de développement
avec une branche de fonctionnalité
Sur son poste local, créer un sous-dossier pour héberger les sources
$ git clone <url_projet>
$ git checkout -b <source_branch> origin/<source_branch>
$ git rebase -i origin/<target_branch>
# pick / squash / delete commits + résoudre conflits
$ git rebase --continue (ou --abort)
$ git checkout -b <target_branch> origin/<target_branch>
$ git merge <source branch> --squash # c’est un fast forward
$ git commit -m "descriptif du commit de synthèse"
$ git push
branche de fonctionnalité
)branche de développement
)Ceci permet d’annuler la dernière opération de type
sans avoir à retrouver le SHA1 du commit
git reset --merge ORIG_HEAD
git checkout -m FILE
git config --global merge.conflictstyle merge
git config --global merge.conflictstyle diff3
git checkout ma_branche
git log -1 $(git merge-base --fork-point autre_branche)
git whatchanged
git filter-branch -f --env-filter "
GIT_AUTHOR_NAME='Newname'
GIT_AUTHOR_EMAIL='new@email'
GIT_COMMITTER_NAME='Newname'
GIT_COMMITTER_EMAIL='new@email'
" HEAD
Ceci permet d’amender simplement un commit de l’historique local avec un nouveau commit via la commande de rebase
interactif. Le message de commit n’est pas obligatoire. Celui du commit amendé sera repris par défaut, préfixé par “fixup!”
git commit --fixup=SHA1duCommitAvecQuiFusionner
git rebase -i origin/BRANCHE_COURANTE --autosquash
Cette option sera utilisée uniquement lors d’un rebase interactif et prendra en compte les commits typés fixup
. Il n’y aura plus besoin de saisir le paramètre --autosquash
dans la commande de rebase
interactif
git config --global rebase.autosquash true
GNU General Public License v3.0