Git
0
aptitude install git
git init script/ cd script/
git add . git commit
Récupérer les fichiers à l'état HEAD dans la branche courante :
git checkout -- . ou git checkout -f ou encore git checkout master .
Créer une branche experimental :
$ git branch experimental
Passer a la branche experimental :
git checkout experimental
On peut ensuite modifier des fichiers, et les commit dans la branche experimentale
git commit -a
On peut pousser cette nouvelle branche sur notre repo distant :
git push -u origin experimental
Puis revenir à la branche par défaut avec :
git checkout master
Pour merger les modifications de experimental dans la branche master :
git merge experimental
Puis vous pouvez supprimer la branche experimental :
git branch -d experimental
Récupérer le message de commit de manière interactive
A la racine de votre dépot git, créez le fichier .git/plop.sh
contenant :
echo "Commit message :" read plop echo "$plop" > $1
Modifiez l'éditeur de fichier utilisé par git :
git config core.editor .git/plop.sh
Récupérer une branche distante
git branch -a
Les branches marqués "remotes" (en rouge) sont présente uniquement de manière distante. Il faut les récupérer avant de pouvoir y toucher.
La commande suivante permet de créer la branche locale "dev" et de la lier a la branche distante "dev" déjà existante
git checkout -b dev origin/dev
Supprimer une branche distante
git push origin --delete BRANCHE
Puis on peut supprimer la version locale de la branche :
git branch -d BRANCHE
Mettre à jour la liste des branches distantes
git remote update --prune
diff
Diff entre plusieurs branches
Diff entre la branche en cours et master:
git diff master
Diff entre deux branches (master et staging ici):
git diff master..staging
Merge
dry run
git merge --no-commit --no-ff $BRANCH
Puis
git merge --abort
Créer un patch
Patch résumant le dernier commit :
git format-patch -1 HEAD
Que vous pouvez appliquer tout bêtement avec patch :
patch -p1 < lepatch.patch
Annuler un commit
Annuler le précédent commit local
En conservant les fichiers
git reset --soft HEAD^
En supprimant les fichiers
git reset --hard HEAD^
Annuler le précédent commit public
git revert HEAD
Retrouver le commit qui a supprimé un fichier
git log --full-history -- FICHIER
Utiliser kdiff3 en tant qu'outil de diff/merge
git config --global --add merge.tool kdiff3 git config --global --add mergetool.kdiff3.path "/usr/bin/kdiff3" git config --global --add mergetool.kdiff3.trustExitCode false git config --global --add mergetool.prompt false git config --global --add diff.guitool kdiff3 git config --global --add difftool.kdiff3.path "/usr/bin/kdiff3" git config --global --add difftool.kdiff3.trustExitCode false git config --global --add difftool.prompt false
Puis utiliser git difftool
(plutôt que git diff
)