Précédent   Forum du club des développeurs et IT Pro > Général Développement > ALM
ALM Forum sur le cycle de vie du logiciel : Gestion de projet, ingénierie logicielle, conception, architecture, modélisation, méthodes, tests, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 29/10/2012, 23h51   #1
jlmag
Membre éclairé
 
Inscription : octobre 2006
Messages : 357
Détails du profil
Informations personnelles :
Âge : 44

Informations forums :
Inscription : octobre 2006
Messages : 357
Points : 316
Points : 316
Par défaut [GIT] Méthodologie pour création d'un dépot

Bonjour,

Je me lance dans l'utilisation de GitHub, aussi j'ai quelques questions sur la méthodologie à suivre.

1-Création d'un dépôt.
Préambule, j'utilise le framework javascript qooxdoo pour mon projet.

- Je crée un dépôt distant "monDepot" sur GitHub
- Je crée et génère mon projet "monProjet" en local via le framework
- J'initialise mon projet avec "git init" en local
- Puis "git add", "git commit" et "git push" pour remplir mon dépôt avec mon projet

A ce stade, mon dépôt contient une branche "master" identique à la branche "master" locale.

Ai-je bon?

2-Création d'une branche de développement
Maintenant que mon dépôt contient la branche "master" propre, en local je crée une nouvelle branche "nvBranche".
Je développe mon projet en local sur la branche "nvBranche".
Suffisamment avancé, j'expose cette branche dans le dépôt via un push. Permettant, 1) d'avoir une "copie" distante, 2) que cette branche soit utilisable par autrui.

Ai-je bon?

3-Fusionnement de la branche "nvBranche" avec la branche "master"
Un fois mon projet normalement abouti en local sur ma branche "nvBranche", je fusionne, en local, mes 2 branches. Puis je push le "master" résultant vers le dépôt.

Ai-je bon?

Questions subsidiaires:
Lorsque je push ma branche "nvBranche", je dois le faire lorsque je suis, en local, connecté sur "master" ou connecté sur "nvBranche".

Une fois mes 2 branches fusionnées en locale, je push le "master" résultant vers le dépot. Dois-je, après, faire un pull vers le local?

Voilà des questions qui peuvent paraitre bête, mais je m'initie.
Merci de vos réponses averties.

Jlmag

NB: mes références sont:
la doc Git
le Community Book
Le tuto Pro Git biensur.
Un autre tuto qui ressemble au précédent
Et d'autres ....
jlmag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2012, 16h18   #2
dolanor
Membre habitué
 
Inscription : mars 2006
Messages : 85
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 85
Points : 108
Points : 108
1 : bon. Rien à dire
2 : la branche nvBranche est censée être développée par d'autres personnes en même temps ?
Si oui, alors il faut la pusher. Sinon, autant la garder locale
3 : Tout bon.
Ca reviendra a faire (on considère que tu es sur ta branche nvBranche et que tu viens de commiter la dernière version):
Code :
1
2
3
4
git checkout master
git merge nvBranche
git push origin master
4 : Quand tu pushes, tu pushe une branche, mais tu n'as pas besoin d'être dessus pour pouvoir la pusher. Tu feras donc un
Le push va mettre à jour le distant par rapport à toi (car c'est toi le plus à jour), tu n'auras pas besoin de faire de pull pour te mettre à jour car en fait, le distant et toi êtes synchronisés maintenant.



Quelques explications en plus concernant le push :
quand tu pushes, beaucoup de paramètres peuvent être évités par configuration (faire en sorte que les branches locale et distante soit en mode tracked)
Exemple, quand tu clones un repository, git configure ton clone comme le dépot distant (dans 99% des cas, la branche principale sera : master). Donc tu auras une branche principale locale qui suivra (tracked) automatiquement la branche distante (dans 99% des cas : origin/master).
Quand tu feras un simple
Git va pusher toutes les branches suivies (tracked) par défaut vers leur dépôt distant. Donc comme ton master local suit le master distant (origin/master), ca reviendrait a faire un :
La partie qui peut mélanger la dedans : quelle différence entre origin master et origin/master ?
Le git push c'est :
Code :
git push <nom du remote/dépot distant> <nom de la branche locale à pusher>
origin/master, c'est quand on fait référence à une branche distante (master) sur le dépot distant (origin).


Dernière information intéressante :
différence entre pull et fetch :
Un fetch permet de télécharger les derniers commits disponible sur le dépôt distant. Git fonctionne toujours en ayant toutes les informations d'historique/commit en local. La commande fetch permet juste de mettre à jour son clone. Par contre, en faisant un fetch, la branche distante (mais stockée en local dans ton clone) origin/master sera à jour. Par contre, il se peut que ta branche locale master ne soit pas a jour. Pour la mettre à jour, tu peux merger les dernières nouveautés qui ont été récupérée par fetch vers la branche origin/master vers ta branche locale master en faisant
Code :
1
2
3
git checkout master #au cas ou tu n'étais pas déjà sur ta branche master
git merge origin/master
git pull c'est automatiquement un fetch puis un pull vers ta branche courante.

Dans certains cas, faire un fetch suivie d'un rebase est plus intéressant que faire un git pull ou git fetch+git merge, mais c'est un autre sujet, et je pense avoir déjà trop écrit et sortir du sujet ^^'
dolanor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2012, 18h59   #3
jlmag
Membre éclairé
 
Inscription : octobre 2006
Messages : 357
Détails du profil
Informations personnelles :
Âge : 44

Informations forums :
Inscription : octobre 2006
Messages : 357
Points : 316
Points : 316
Bonsoir Dolanor,

Merci pour ces informations qui m'éclairent.
Je suis parti dans le bon sens donc!

jlmag
jlmag est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h41.


 
 
 
 
Partenaires

Hébergement Web