Outils pour utilisateurs

Outils du site


linux:memo_git

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
linux:memo_git [23/05/2012 17:41] – Un local, plusieurs distants daniellinux:memo_git [21/12/2012 11:23] (Version actuelle) – aj qq Commandes courantes daniel
Ligne 11: Ligne 11:
   * stash : ça on peut s'en passer dans un 1er temps, même si c'est pratique. C'est un espace "tampon", pour y mettre ses modifs locales que l'on ne veut pas encore passer en commit (cf [[http://git-scm.com/book/fr/Utilitaires-Git-La-remise|la remise]] pour des exemples). Indispensable avant de changer de branche par ex.   * stash : ça on peut s'en passer dans un 1er temps, même si c'est pratique. C'est un espace "tampon", pour y mettre ses modifs locales que l'on ne veut pas encore passer en commit (cf [[http://git-scm.com/book/fr/Utilitaires-Git-La-remise|la remise]] pour des exemples). Indispensable avant de changer de branche par ex.
  
-Résumé des commandes git :+Résumé des commandes git
   * graphique interactif efficace : http://ndpsoftware.com/git-cheatsheet.html   * graphique interactif efficace : http://ndpsoftware.com/git-cheatsheet.html
   * http://jonas.nitro.dk/git/quick-reference.html   * http://jonas.nitro.dk/git/quick-reference.html
Ligne 26: Ligne 26:
 La page de doc du plugin netbeans http://netbeans.org/kb/docs/ide/git.html La page de doc du plugin netbeans http://netbeans.org/kb/docs/ide/git.html
  
 +Tip & tricks
 +  * http://mislav.uniqpath.com/2010/07/git-tips/
 +
 +===== Commandes courantes =====
 +  * Modifier le dernier message de commit ''git commit --amend -m "New commit message"'' ([[http://stackoverflow.com/a/179147|src]])
 +  * voir les serveurs distants (ajouter -v pour avoir les urls) ''git remote''
 +  * editer la conf par defaut ''git config -e''
  
 ===== Dépôt centralisateur ===== ===== Dépôt centralisateur =====
Ligne 92: Ligne 99:
  
 Les ligne qui commencent par "#>"  correspondent à la sortie de la commande précédente, pour permettre de copier/coller tout en console sans avoir de tri à faire Les ligne qui commencent par "#>"  correspondent à la sortie de la commande précédente, pour permettre de copier/coller tout en console sans avoir de tri à faire
 +
 +
  
 ==== Un local, plusieurs distants ==== ==== Un local, plusieurs distants ====
Ligne 97: Ligne 106:
 J'essaie ici d'avoir un dépôt local avec différentes branches qui suivent chacune son dépôt distant, mais le tracking marche pas comme ce que j'avais compris (testé en debian squeeze, avec git 1.7.2.5). J'essaie ici d'avoir un dépôt local avec différentes branches qui suivent chacune son dépôt distant, mais le tracking marche pas comme ce que j'avais compris (testé en debian squeeze, avec git 1.7.2.5).
  
 +Voici ce que j'ai fait (un seul serveur ici, mais si ça marche pour A...)
 <code bash> <code bash>
-# on créé 2 bare repository (nos remote en fait en local pour cet exemple) +mkdir serveurA 
-mkdir serveurA serveurB+
 cd serveurA/ cd serveurA/
-git init --bare  +h=$(basename $(pwd)); touch $h a c; echo $h > c; 
-cd ../serveurB/ +git init --bare
-git init --bare +
  
-clones (pour vérifier que ce que le push sur les serveurs est bien ce qui est attendu)+un clones (pour vérifier que le push sur les serveurs est bien ce qui est attendu)
 cd .. cd ..
 git clone serveurA cloneA git clone serveurA cloneA
-git clone serveurB cloneB 
 # et aussi pour le peuplement initial # et aussi pour le peuplement initial
 cd cloneA cd cloneA
Ligne 115: Ligne 122:
 git commit -a -m "1er commit $h" git commit -a -m "1er commit $h"
 git push origin master git push origin master
-cd ../cloneB + 
-h=$(basename $(pwd)); touch $h c2; echo $h > c2; +
-git add . +
-git commit -a -m "1er commit $h" +
-git push origin master +
 # et un dépôt local # et un dépôt local
 cd .. cd ..
Ligne 132: Ligne 134:
 # ça nous a créé une branche master, mais on veut la nommer autrement pour pas confondre avec ceux des remote # ça nous a créé une branche master, mais on veut la nommer autrement pour pas confondre avec ceux des remote
 # et éviter d′éventuel push/pull non désiré entre ce ce master local et les remote # et éviter d′éventuel push/pull non désiré entre ce ce master local et les remote
-git branch -m master local +git branch -m master commun 
- +  
-on créé 2 alias pour nos serveurs+un alias pour le serveur
 git remote add remoteA ../serveurA master git remote add remoteA ../serveurA master
-git remote add remoteB ../serveurB master + 
 # une branche que l′on va synchroniser avec le serveur A # une branche que l′on va synchroniser avec le serveur A
-git checkout --track -b brancheA remoteA/master +git fetch remoteA                               # => 1er fetch donc créé la "branche" remoteA/master
-#>fatal: git checkout: updating paths is incompatible with switching branches. +
-#>Did you intend to checkout 'remoteA/master' which can not be resolved as commit? +
- +
-# OK, faut d′abord se mettre à jour +
-git fetch remoteA # => créé la "branche" (read only) remoteA/master+
 git checkout --track -b brancheA remoteA/master # => créé la branche brancheA en lien avec remoteA/master git checkout --track -b brancheA remoteA/master # => créé la branche brancheA en lien avec remoteA/master
 + 
 # on modifie un fichier # on modifie un fichier
 echo  "mod 1" > cloneA echo  "mod 1" > cloneA
Ligne 156: Ligne 152:
 git push remoteA brancheA:master git push remoteA brancheA:master
 # ça push mieux # ça push mieux
-#> ... +# 2e modif pour voir si ça track mieux maintenant qu′on lui a montré
-#> To ../serveurA +
-#>    bddaf54..3b00bff  brancheA -> master +
-# 2e modif pour voir si ça track mieux+
 echo  "mod 2" >> cloneA echo  "mod 2" >> cloneA
 git commit -m "mod 2" cloneA git commit -m "mod 2" cloneA
Ligne 165: Ligne 158:
 # tj rien :-S, et avec -u ? # tj rien :-S, et avec -u ?
 git push -u remoteA brancheA:master git push -u remoteA brancheA:master
-#> ça push et ça track 
 #> [...] #> [...]
 #> To ../serveurA #> To ../serveurA
 #>    3b00bff..cb44c59  brancheA -> master #>    3b00bff..cb44c59  brancheA -> master
 #> Branch brancheA set up to track remote branch master from remoteA. #> Branch brancheA set up to track remote branch master from remoteA.
 +# ça parait pourtant clair, mais
 echo  "mod 3" >> cloneA echo  "mod 3" >> cloneA
 git commit -a -m "mod 3" git commit -a -m "mod 3"
linux/memo_git.1337787695.txt.gz · Dernière modification : 23/05/2012 17:41 de daniel