« Git » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
(16 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[category:desktop]] | |||
=0= | |||
<pre>aptitude install git</pre> | <pre>aptitude install git</pre> | ||
Ligne 14 : | Ligne 16 : | ||
<pre> | <pre> | ||
git checkout -- . | git checkout -- . | ||
ou | |||
git checkout -f | |||
ou encore | |||
git checkout master . | |||
</pre> | </pre> | ||
Ligne 26 : | Ligne 32 : | ||
</pre> | </pre> | ||
On peut ensuite modifier des fichiers, et les commit dans la | On peut ensuite modifier des fichiers, et les commit dans la branche experimentale | ||
<pre> | <pre> | ||
git commit -a | git commit -a | ||
</pre> | </pre> | ||
Puis | On peut pousser cette nouvelle branche sur notre repo distant : | ||
<pre> | |||
git push -u origin experimental | |||
</pre> | |||
Puis revenir à la branche par défaut avec : | |||
<pre> | <pre> | ||
git checkout master | git checkout master | ||
Ligne 54 : | Ligne 65 : | ||
Modifiez l'éditeur de fichier utilisé par git : | Modifiez l'éditeur de fichier utilisé par git : | ||
<pre>git config core.editor .git/plop.sh</pre> | <pre>git config core.editor .git/plop.sh</pre> | ||
=Récupérer une branche distante= | |||
<pre>git branch -a</pre> | |||
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 | |||
<pre>git checkout -b dev origin/dev</pre> | |||
=Supprimer une branche distante= | |||
<pre>git push origin --delete BRANCHE</pre> | |||
Puis on peut supprimer la version locale de la branche : | |||
<pre>git branch -d BRANCHE</pre> | |||
=Mettre à jour la liste des branches distantes= | |||
<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= | |||
==dry run== | |||
<pre>git merge --no-commit --no-ff $BRANCH</pre> | |||
Puis | |||
<pre>git merge --abort</pre> | |||
=Créer un patch= | |||
Patch résumant le dernier commit : | |||
<pre>git format-patch -1 HEAD</pre> | |||
Que vous pouvez appliquer tout bêtement avec patch : | |||
<pre>patch -p1 < lepatch.patch</pre> | |||
=Annuler un commit= | |||
==Annuler le précédent commit local== | |||
En conservant les fichiers | |||
<pre> | |||
git reset --soft HEAD^ | |||
</pre> | |||
En supprimant les fichiers | |||
<pre> | |||
git reset --hard HEAD^ | |||
</pre> | |||
==Annuler le précédent commit public== | |||
<pre> | |||
git revert HEAD | |||
</pre> | |||
=Retrouver le commit qui a supprimé un fichier= | |||
<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
)