« Git » : différence entre les versions

De Linux Server Wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
 
(5 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 79 : 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 114 : Ligne 124 :
git revert HEAD
git revert HEAD
</pre>
</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)