IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ALM Discussion :

[GIT] Méthodologie pour création d'un dépot


Sujet :

ALM

  1. #1
    Invité
    Invité(e)
    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 ....

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 100
    Points : 150
    Points
    150
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ^^'

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonsoir Dolanor,

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

    jlmag

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Cherche un outil pour création d'un cd interactif
    Par le Vent se lève... dans le forum Général Conception Web
    Réponses: 10
    Dernier message: 13/10/2006, 18h36
  2. Réponses: 2
    Dernier message: 04/01/2006, 11h59
  3. Librairie pour création de formulaires
    Par mathk dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 21/12/2005, 17h40
  4. [JDBC] Recherche API pour création dyn. de table
    Par Oui-Oui MB dans le forum JDBC
    Réponses: 3
    Dernier message: 04/10/2005, 14h35
  5. Méthodologie pour les tests
    Par Maitre B dans le forum Test
    Réponses: 7
    Dernier message: 10/03/2005, 18h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo