« Git » : différence entre les versions

De Linux Server Wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
 
(21 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 5 : Ligne 7 :
cd script/
cd script/
</pre>
</pre>
<pre>
git add .
git commit
</pre>
Récupérer les fichiers à l'état HEAD dans la branche courante :
<pre>
git checkout -- .
ou
git checkout -f
ou encore
git checkout master .
</pre>
Créer une branche experimental :
<pre>
$ git branch experimental
</pre>
Passer a la branche experimental :
<pre>
git checkout experimental
</pre>
On peut ensuite modifier des fichiers, et les commit dans la branche experimentale
<pre>
git commit -a
</pre>
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>
git checkout master
</pre>
Pour merger les modifications de experimental dans la branche master :
<pre>
git merge experimental
</pre>
Puis vous pouvez supprimer la branche experimental :
<pre>git branch -d experimental</pre>


=Récupérer le message de commit de manière interactive=
=Récupérer le message de commit de manière interactive=
Ligne 16 : 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)