Projet

Général

Profil

Git » Historique » Révision 7

Révision 6 (Régis Bouguin, 16/06/2013 21:49) → Révision 7/13 (Régis Bouguin, 17/06/2013 21:54)

h1. Utiliser git en ligne de commande 

 Mettre en place un dépot git local à partir du dépot officiel : 

	 mkdir ~/git_gepi 
 cd ~/git_gepi 
 git clone git://github.com/tbelliard/gepi.git 

 Pour proposer une correction sur un problème particulier ou (ou un ajout de fonctionnalité, fonctionnalité), vous devez vous créer un dépot sur github (https://github.com) en clonant le dépot tbelliard/gepi.git, cloner ce dépot en local, créer une branche, effectuer vos corrections, pousser cette branche sur votre dépot, annoncer sur la liste de diffusion votre correction 

 h2. Étape 1 

 Les développeurs ne travaillent pas sur le dépot officiel (git://github.com/tbelliard/gepi.git) mais sur une copie personnelle de ce dépot. Si la correction ou la nouvelle fonctionnalité satisfait la dream team (développeurs historiques qui gérent le dépot officiel), ils l'intégrent sur le dépot officiel. 

 h3. Étape 1.1 _créer un compte github_ 

 Créer un compte sur https://github.com 
 Créer un couple de clés SSH sur votre ordinateur 
 Ajouter la clé publique dans votre compte github (https://github.com/settings/ssh) 

 h3. Étape 1.2 _créer des copies de travail_ 

 Aller sur le dépot officiel (https://github.com/tbelliard/gepi/) et créer une copie (Fork) 
 Sur votre ordinateur, mettez en place un dépot git local à partir de votre dépot (https://github.com/Regis85/gepi) 

	 mkdir ~/git_gepi 
 cd ~/git_gepi 
 git clone git@github.com:Regis85/gepi.git 

 À partir de là, vous pouvez utiliser Gitk et Git Gui ou le terminal pour récupérer les branches de votre dépot. 
 Pour pouvoir également mettre à jour votre dépot local à partir du dépot officiel, vous devez ajouter celui-ci comme dépot de référence 

	 git remote 
 → origin 
 git remote add Officiel https://github.com/tbelliard/gepi.git 
 git remote    -v 
 → Officiel 	 https://github.com/tbelliard/gepi.git (fetch) 
 → Officiel 	 https://github.com/tbelliard/gepi.git (push) 
 → origin 	 git@github.com:Regis85/gepi.git (fetch) 
 → origin 	 git@github.com:Regis85/gepi.git (push) 

 Vous pouvez ajouter d'autres dépôts que vous souhaitez suivre. 



 h1. Utiliser git en ligne de commande 

 Mettre en place un dépot git local à partir du dépot officiel : 

	 mkdir ~/git_gepi 
 cd ~/git_gepi 
 git clone git://github.com/tbelliard/gepi.git 






 





 h2. En vrac... 

 En vrac, j'avais noté: 

 git checkout developpement : va te sortir la branche développement dans le répertoire de travail. 
 git checkout production : va te sortir la branche production dans le répertoire de travail. 

 git status : permet de savoir quelle branche est chargée dans le répertore de travail. 

 git commit -m "MESSAGE" chemin/fichier : va commiter en local dans la branche du répertoire de travail... 

 git push origin production : va envoyer les fichiers commités en local vers le dépot github 

 git diff developpement joss/developpement : affiche un diff des branches indiquées 

 git log --name-only joss/developpement : affiche un log des commits avec les fichiers concernés 


 git fetch all 


 Ajouter le dépôt de Josselin, afficher dans le dossier courant la branche developpement, récupérer les dernières modifications sur le dépot de Josselin, prendre en compte dans le dépot local les modification commitées par Josselin sur son dépôt : 
 git remote add joss git@github.com:kigeia/gepi 
 git checkout developpement 
 git fetch joss 
 git merge joss/developpement 

 git branch -a : lister les branches 

 git reset --hard [sha_du_commit_avant_merge] 

 git reset --hard HEAD : Annuler les changements non commités. Reset de la copie de travail. Retour à la version la plus récente de la branche courante. 
 HEAD est un pointeur vers la branche courante, à son niveau de commit le plus récent. 

 En supposant que tu as poussé tes commit précédent sur origin/master, 
 le mieux est encore de faire git merge <branche>, puis quand tu as 
 fini le merge tu fait git diff origin/master. Si ça convient pas tu 
 fais git reset --hard origin/master; ou git push sinon. 

 ============================================================ 
 Pour annuler un commit particulier, sans perturber ceux effectués entre temps: 
 12:05 steph@hpcrob ~/gepi_git_officiel/gepi(release-1.6.1) $ git merge marc/no_stack_overflow 
 Updating e66cd62..d9ef04c 
 Fast-forward 
  lib/share.inc.php |     15 +++++++++++++-- 
 1 files changed, 13 insertions(+), 2 deletions(-) 
 12:06 steph@hpcrob ~/gepi_git_officiel/gepi(release-1.6.1) $ 

 git revert d9ef04c58 
 ============================================================