Git

De Linux Server Wiki
Aller à la navigation Aller à la recherche

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)