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:29] – niv titre 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 77: Ligne 84:
 # et pour retirer ces droits de lecture anonyme il suffit d'effacer ce fichier vide. # et pour retirer ces droits de lecture anonyme il suffit d'effacer ce fichier vide.
 </code> </code>
 +
  
  
Ligne 87: Ligne 95:
 </code> </code>
  
 +===== Exemples =====
 +Ci dessous qq démos, pour vous faire une idée.
 +
 +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 ====
 +
 +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>
 +mkdir serveurA 
 +cd serveurA/
 +h=$(basename $(pwd)); touch $h a c; echo $h > c;
 +git init --bare
 +
 +# un clones (pour vérifier que le push sur les serveurs est bien ce qui est attendu)
 +cd ..
 +git clone serveurA cloneA
 +# et aussi pour le peuplement initial
 +cd cloneA
 +h=$(basename $(pwd)); touch $h c1 c2; echo $h > c2;
 +git add .
 +git commit -a -m "1er commit $h"
 +git push origin master
 + 
 +# et un dépôt local
 +cd ..
 +mkdir loc
 +cd loc
 +git init
 +# avec qq fichiers
 +h=$(basename $(pwd)); touch $h c2; echo $h > c2;
 +git add .
 +git commit -a -m "1er commit $h"
 +# ç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
 +git branch -m master commun
 + 
 +# un alias pour le serveur
 +git remote add remoteA ../serveurA master
 + 
 +# une branche que l′on va synchroniser avec le serveur A
 +git fetch remoteA                               # => 1er fetch donc créé la "branche" remoteA/master
 +git checkout --track -b brancheA remoteA/master # => créé la branche brancheA en lien avec remoteA/master
 + 
 +# on modifie un fichier
 +echo  "mod 1" > cloneA
 +git commit -m "mod 1" cloneA
 +# que l′on veut envoyer
 +git push
 +#>Everything up-to-date
 +# Ah bon ? Le tracking marche pas ?
 +git push remoteA brancheA:master
 +# ça push mieux
 +# 2e modif pour voir si ça track mieux maintenant qu′on lui a montré
 +echo  "mod 2" >> cloneA
 +git commit -m "mod 2" cloneA
 +git push
 +# tj rien :-S, et avec -u ?
 +git push -u remoteA brancheA:master
 +#> [...]
 +#> To ../serveurA
 +#>    3b00bff..cb44c59  brancheA -> master
 +#> Branch brancheA set up to track remote branch master from remoteA.
 +# ça parait pourtant clair, mais
 +echo  "mod 3" >> cloneA
 +git commit -a -m "mod 3"
 +git push
 +#> Everything up-to-date
 +# pas mieux...
 +</code>
linux/memo_git.1337786974.txt.gz · Dernière modification : 23/05/2012 17:29 de daniel