Projet

Général

Profil

Git » Historique » Version 10

Régis Bouguin, 18/06/2013 19:37

1 7 Régis Bouguin
h1. Utiliser git
2
3
Pour proposer une correction sur un problème particulier ou un ajout de 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
4
5 9 Régis Bouguin
h2. Étape 1 _créer son espace de travail_
6 7 Régis Bouguin
7
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.
8
9
h3. Étape 1.1 _créer un compte github_
10
11
Créer un compte sur https://github.com
12
Créer un couple de clés SSH sur votre ordinateur
13
Ajouter la clé publique dans votre compte github (https://github.com/settings/ssh)
14
15
h3. Étape 1.2 _créer des copies de travail_
16
17
Aller sur le dépot officiel (https://github.com/tbelliard/gepi/) et créer une copie (Fork)
18 8 Régis Bouguin
Sur votre ordinateur, mettez en place un dépot git local à partir de votre dépot (https://github.com/Regis85/gepi pour moi)
19 7 Régis Bouguin
20
	mkdir ~/git_gepi
21
cd ~/git_gepi
22
git clone git@github.com:Regis85/gepi.git
23
24
À partir de là, vous pouvez utiliser Gitk et Git Gui ou le terminal pour récupérer les branches de votre dépot.
25
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
26
27
	git remote
28
→ origin
29
git remote add Officiel https://github.com/tbelliard/gepi.git
30
git remote  -v
31
→ Officiel	https://github.com/tbelliard/gepi.git (fetch)
32
→ Officiel	https://github.com/tbelliard/gepi.git (push)
33
→ origin	git@github.com:Regis85/gepi.git (fetch)
34
→ origin	git@github.com:Regis85/gepi.git (push)
35
36
Vous pouvez ajouter d'autres dépôts que vous souhaitez suivre.
37
38 10 Régis Bouguin
	_Les étapes suivantes sont l'illustration de mes habitudes, ce n'est pas la seule façon de faire et sûrement pas la meilleure mais elle me convient_
39
40
h2. Étape 2 _mettre à jour son dépôt_
41
42
h3. _avec git gui_
43
44
Lancer git gui → Dépôt distant → Récupérer de → All (ou un des dépôts que vous suivez)
45
Fusionner → Fusion locale → Branche de suivi → choisir la branche
46
47
Choisir au besoin une autre branche locale et la fusionner à celle du dépôt officiel
48
49
h3. _dans un terminal_
50
51
...
52
53
54 7 Régis Bouguin
55
56 1 Stéphane Boireau
h1. Utiliser git en ligne de commande
57 5 Régis Bouguin
58 1 Stéphane Boireau
Mettre en place un dépot git local à partir du dépot officiel :
59
60
	mkdir ~/git_gepi
61
cd ~/git_gepi
62
git clone git://github.com/tbelliard/gepi.git
63 4 Régis Bouguin
64 1 Stéphane Boireau
65 2 Stéphane Boireau
66
67 6 Régis Bouguin
68
69 3 Stéphane Boireau
h2. En vrac...
70
71 2 Stéphane Boireau
En vrac, j'avais noté:
72
73
git checkout developpement : va te sortir la branche développement dans le répertoire de travail.
74
git checkout production : va te sortir la branche production dans le répertoire de travail.
75
76
git status : permet de savoir quelle branche est chargée dans le répertore de travail.
77
78
git commit -m "MESSAGE" chemin/fichier : va commiter en local dans la branche du répertoire de travail...
79
80
git push origin production : va envoyer les fichiers commités en local vers le dépot github
81
82
git diff developpement joss/developpement : affiche un diff des branches indiquées
83
84
git log --name-only joss/developpement : affiche un log des commits avec les fichiers concernés
85
86
87
git fetch all
88
89
90 3 Stéphane Boireau
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 :
91 2 Stéphane Boireau
git remote add joss git@github.com:kigeia/gepi
92
git checkout developpement
93
git fetch joss
94
git merge joss/developpement
95
96
git branch -a : lister les branches
97
98
git reset --hard [sha_du_commit_avant_merge]
99
100
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.
101
HEAD est un pointeur vers la branche courante, à son niveau de commit le plus récent.
102
103
En supposant que tu as poussé tes commit précédent sur origin/master,
104
le mieux est encore de faire git merge <branche>, puis quand tu as
105
fini le merge tu fait git diff origin/master. Si ça convient pas tu
106
fais git reset --hard origin/master; ou git push sinon.
107
108
============================================================
109
Pour annuler un commit particulier, sans perturber ceux effectués entre temps:
110
12:05 steph@hpcrob ~/gepi_git_officiel/gepi(release-1.6.1) $ git merge marc/no_stack_overflow
111
Updating e66cd62..d9ef04c
112
Fast-forward
113
 lib/share.inc.php |   15 +++++++++++++--
114
1 files changed, 13 insertions(+), 2 deletions(-)
115
12:06 steph@hpcrob ~/gepi_git_officiel/gepi(release-1.6.1) $
116
117
git revert d9ef04c58
118
============================================================