[[git]]
 

Quick How-To GIT

Pour beaucoup plus de détails, voir aussi le séminaire SED sur GIT ici ou le serveur de GIT

Ca marche avec git-svn comme avec GIT normal.

Voir le statut du repository et les modifs locales

git status
git diff

Ajouter ou retirer un fichier

git add <file>
git rm <file>

Committer toutes les modifications locales

git commit -a -m "message de commit"

Annuler les modifications locales

git checkout -f                      # tous les fichiers
git diff <fichier> | patch -p1 -R    # un seul fichier

Voir le log des commits

git log

Voir qui a modifié une liste

git blame fichier

Regarder un commit

git show                # le dernier
git show HEAD~3         # le 4eme en partant de la fin
git show <commitid>     # identifiant = hash dans git-log

Ajouter les modifs locales au dernier commit courant

git commit --amend -a

Annuler des commits (en gardant les modifications)

git reset HEAD^          # le dernier uniquement

Annuler des commits (en oubliant leurs modifications)

git reset --hard HEAD~3  # les *4* derniers

Générer et appliquer un patch

git show > patch         # dernier commit
git diff > patch         # modifications locales
patch -p1 < patch        # appliquer le patch
patch -p1 -R < patch     # reverter le patch

Modifier les commits apres un commit dont on connait l'identifiant

git rebase -i <commitid>

Par exemple, pour merger les 2 derniers commits,

git rebase -i HEAD^^

puis suivre les instructions ….

Masquer temporairement les derniers commits

git checkout HEAD^       # masquer le dernier
git checkout HEAD~25     # masquer les 25 derniers
git checkout <commitid>  # masquer jusque juste après un commit
git checkout master      # revenir au bout de la branche master

Créer, utiliser, supprimer des branches ou tags

git branch foobar               # crée la branche foobar
git branch <commitid> foobar    # crée la branche foobar à partir d'un commit id
git checkout foobar             # va sur la branche foobar
git log foobar                  # affiche le log de la branche
git checkout master             # revenir sur la branche master
git branch -D foobar            # efface la branche
git branch -D master ; git branch foobar master ; git branch -D foobar    # remplacer master par le contenu de foobar

Merger 2 repos GIT

voir http://git-scm.com/book/en/Git-Tools-Subtree-Merging pour plus de détails

  • créer le 1er repo
mkdir git1 && cd git1/ && git init
echo git1 > xxxx
git add xxxx 
git commit -a -m "git1" 
  • créér le 2ème repo
mkdir git5 && cd git5 && git init
echo "git5" > cc
git add cc
git commit -a -m "git5"
  • merger le 1er
git remote add git1 /tmp/git1/
git fetch git1
git checkout -b git1 git1/master
git checkout master
git merge git1

Voir aussi

git.txt · Last modified: 2014/02/04 11:31 by furmento
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki