« Git » : différence entre les versions
Aucun résumé des modifications |
|||
(3 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[category:desktop]] | [[category:desktop]] | ||
=0= | |||
<pre>aptitude install git</pre> | <pre>aptitude install git</pre> | ||
Ligne 80 : | Ligne 81 : | ||
=Mettre à jour la liste des branches distantes= | =Mettre à jour la liste des branches distantes= | ||
<pre>git remote update --prune</pre> | <pre>git remote update --prune</pre> | ||
=diff= | |||
==Diff entre plusieurs branches== | |||
Diff entre la branche en cours et master: | |||
<pre>git diff master</pre> | |||
Diff entre deux branches (master et staging ici): | |||
<pre>git diff master..staging</pre> | |||
=Merge= | =Merge= | ||
Ligne 116 : | Ligne 125 : | ||
</pre> | </pre> | ||
=Retrouver un fichier | =Retrouver le commit qui a supprimé un fichier= | ||
<pre>git log --full-history -- FICHIER</pre> | <pre>git log --full-history -- FICHIER</pre> | ||
=Utiliser kdiff3 en tant qu'outil de diff/merge= | |||
<pre> | |||
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 | |||
</pre> | |||
Puis utiliser <code>git difftool</code> (plutôt que <code>git diff</code>) |
Dernière version du 10 novembre 2019 à 10:23
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
)