add notes
This commit is contained in:
parent
9c23a7318e
commit
a0846b387a
9 changed files with 219 additions and 110 deletions
136
notes/git.md
Normal file
136
notes/git.md
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
<!-- title: Les commandes de Git -->
|
||||
|
||||
# Git
|
||||
|
||||
Pousser nouvelle branche :
|
||||
|
||||
git push -u origin <nom branche>
|
||||
|
||||
Lier branche locale à branche distante :
|
||||
|
||||
git branch --set-upstream-to=origin/deployment deployment
|
||||
|
||||
Fusion sans fast-forward pour préserver les commits :
|
||||
|
||||
git merge --no-ff <source branch>
|
||||
|
||||
Créer une nouvelle branche à partir d'un commit :
|
||||
|
||||
git checkout <id de commit> && git branch -b <nom de la branche>
|
||||
|
||||
Annuler des changements :
|
||||
|
||||
# committer l'annulation d'un commit :
|
||||
git revert <id de commit>
|
||||
|
||||
# restaurer l'état d'un fichier par rapport au dernier commit
|
||||
git checkout -- <chemin du fichier>
|
||||
|
||||
# annuler le dernier commit pour un fichier particulier (n° de checkout + ~1 pour reculer d'un commit)
|
||||
git checkout c5f567~1 -- file1/to/restore
|
||||
|
||||
Retrouver les branches qui contiennent un commit :
|
||||
|
||||
git branch --contains <id de commit>
|
||||
|
||||
Récupérer toutes les branches localement :
|
||||
|
||||
# ne pas récupérer les branches supprimées
|
||||
git fetch --prune
|
||||
|
||||
# créer toutes les branches
|
||||
for BRANCH in $(git branch -a | grep remotes | grep -v HEAD); do git branch --track \"${BRANCH#remotes/origin/}\" \"${BRANCH}\"; done
|
||||
|
||||
Rechercher dans toutes les branches :
|
||||
|
||||
git grep "the magic string" `git show-ref --heads`
|
||||
|
||||
La plupart des commandes peuvent être restreintes à un chemin de fichier :
|
||||
|
||||
git stash push -- <filepath(s)>
|
||||
git diff <id commit 1> <id commit 2> -- <filepath(s)>
|
||||
|
||||
La gestion des stash :
|
||||
|
||||
# voir le contenu d'un stash (0 est le plus récent)
|
||||
git stash show -p [stash@{<n>}]
|
||||
# appliquer un stash sans le supprimer
|
||||
git stash apply [stash@{<n>}]
|
||||
|
||||
Récupérer un fichier d'une autre branche :
|
||||
|
||||
git checkout <branch> -- <path(s)>
|
||||
|
||||
Travailler sur plusieurs branches à la fois (pour comparer par exemple) :
|
||||
|
||||
git worktree add ../my-other-awesome-feature my-other-awesome-feature-branch
|
||||
git worktree remove ../my-other-awesome-feature
|
||||
|
||||
Supprimer une branche distante
|
||||
|
||||
git push origin --delete <remote_branch>
|
||||
|
||||
Lister les commits manquants sur la branche release par rapport à develop
|
||||
|
||||
# depuis branche release
|
||||
git cherry develop
|
||||
git log release..develop
|
||||
# la version one-liner
|
||||
git log --oneline --graph --decorate --abbrev-commit release..develop
|
||||
|
||||
Créer un patch à partir d'une suite de commits consécutifs
|
||||
|
||||
git format-patch cc1dde0dd^..6de6d4b06 --stdout > foo.patch
|
||||
|
||||
Restaurer un fichier pendant une phase de merge
|
||||
|
||||
git checkout -m FILE
|
||||
|
||||
Modifier l'historique des auteurs / e-mails avec git-filter-repo
|
||||
|
||||
git filter-repo --mailmap my-mailmap
|
||||
|
||||
# ficher my-mailmap de la forme :
|
||||
# Proper Name <proper@email.xx> <commit@email.xx>
|
||||
|
||||
Créer un nouveau dépôt à partir de la ligne de commande
|
||||
|
||||
echo "# test" >> README.md
|
||||
git init
|
||||
git add README.md
|
||||
git commit -m "first commit"
|
||||
git branch -M main
|
||||
git remote add origin git@github.com:user/project.git
|
||||
git push -u origin main
|
||||
|
||||
Pousser un dépôt existant depuis la ligne de commande
|
||||
|
||||
git remote add origin git@github.com:user/projectgit
|
||||
git branch -M main
|
||||
git push -u origin main
|
||||
|
||||
Modifier la racine d'un dépôt
|
||||
|
||||
On peut modifier la racine pour un répertoire enfant sans perdre l'historique :
|
||||
|
||||
- déplacer le répertoire .git vers ce répertoire enfant
|
||||
- ajouter tous les fichiers modifiés (git add) ce qui renomme les fichiers existants
|
||||
- committer et pousser
|
||||
|
||||
Transformer un id long de commit en id court
|
||||
|
||||
git rev-parse --short d40f13c5886a8f44e7653f68829dd094045a5499
|
||||
|
||||
# GitHub
|
||||
|
||||
Générer un Personal Access Token pour les accès HTTPS
|
||||
|
||||
git config --global credential.https://github.com.helper cache
|
||||
|
||||
git credential approve <<EOF
|
||||
protocol=https
|
||||
host=github.com
|
||||
username=$GITHUB_USERNAME
|
||||
password=$GITHUB_TOKEN
|
||||
EOF
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue