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

GIT Discussion :

Différence entre deux commande basées sur git push


Sujet :

GIT

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 256
    Points : 74
    Points
    74
    Par défaut Différence entre deux commande basées sur git push
    Bonjour,

    Disons par exemple que je souhaite créer une nouvelle branche pour pusher mes modifs et ne pas polluer la branche master :
    git branch ma-branche
    git checkout ma-branche
    git add myFile.ext
    git commit -m""

    Pour la ligne qui push vers le distant, quelle est la différence entre
    1) git push
    et
    2) git push origin ma-branche ?

    Sachant que je m'étais déjà positionné sur ma branche ma-branche, j'ai fait la commande 1).
    Le problème, c'est que ma branche n'apparait pas sur le repo distant...

    Mais qu'ai-je donc fait ? Pourquoi fallait-il que je fasse la commande 2) pour la voir apparaitre sur le repo distant ?
    En faisant 1), ai-je pushé sur le master ?

    Merci d'avance pour vos éclaircissements.

  2. #2
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Points : 1 532
    Points
    1 532
    Par défaut équivalence
    Bonjour,

    les deux sont équivalente, sauf que dans le premier cas tu as déclarer un raccourci dans ton fichier .git/config vers le remote,
    tu dois avoir une ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [remote "origin"]
       fetch = ....
       url = .....
    
    [branch "master"]
    
    ...
    http://git-scm.com/book/fr/Les-bases...%B4ts-distants

    il t'explique cette notion

    pour le second cas, c'est la même commande mais tu signales exactement ce que tu veux faire.

    tu pousses t'as branche locale vers le dépôt distant ...;
    http://git-scm.com/book/fr/Les-bases...C3%B4t-distant

    Petit détail important origin, est par défaut le nom distant
    master est le ,nom par défaut tu dépôt local.

    j'aime pas trop le git push origin ma branche car il faut l'interpréter à l'envers ...

    Olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 256
    Points : 74
    Points
    74
    Par défaut
    Ok, merci pour l'explication.
    En effet j'ai bien un raccourci dans mon fichier de config git.
    Alors finalement, lorsque j'ai fais "git push", j'ai pushé sur le master, c'est bien ça ?
    Mais mon commit, je l'ai fait sur ma branche non ?
    Donc lorsque j'ai fait git push... je n'ai rien pushé du tout !? (sous entendu, je n'avais aucun commit en attente sur la branche master).

    Donc si je résume, pour terminer mon push sur ma branche "ma-branche", je dois faire un "git push origin ma-branche" (Dis moi si je me trompe)


    C'est vrai qu'il faut interpréter un git push origin à l'envers... mais c'est la seule solution que je connaisse pour pusher quelque chose. Comment aurais-tu fais ?

    Merci encore.

  4. #4
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Points : 1 532
    Points
    1 532
    Par défaut git commit
    Bonjour,

    Avec git, il faut distinguer deux actions.

    Je modifie mes fichiers .... je travaille, je travaille sur ma branche.
    quand tout est OK, je commit, là, je suis toujours sur ma branche, j'ai commité mais je n'ai rien envoyé au serveur.
    Il faut se dire que c'est un moyen de travailler seul et en itinérance. je peux si je le souhaite reprendre mon travail deux jours après, et recommité
    sur ma branche .
    git commit -m ..

    Ok

    Maintenant, j'estime que tout le monde doit partager mon travail qui est sur ma branche. que je vais appeler dev.

    en règle général, la branche par défaut locale est dite "master", ce qui fait qu'en local j'ai "dev" et "master"
    ce que je fais.

    je bascule sur ma branche principale"
    je fusionne la branche de travail dev sur la branche locale master dite stable en local"
    comme je suis un dieu du dev, je partage mon superbe travail de ouf
    ou raccourci
    En règle général, je travaille avec au moins trois branches.
    celle locale, pour le développement dev
    celle locale, en phase de recette, mais pas sûr encore, master
    celle distante, ou je suis "sûr" de mes modifs dite origin.
    Entre temps, je tague les versions, histoire de savoir ou j'en suis.

    en local sur mon serveur

    depot master -----------------> depot distant origin

    |
    branche dev


    Olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

  5. #5
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Un détail qui a son importance sur le comportement par défaut de git-push (i.e. sans refspec): celui-ci peut être paramétré à l'aide du paramètre push.default

    Les valeurs possible pour cette variable sont

    • nothing - inhibe le push !
    • matching -pousse toutes les branches ayant le même nom en local et remote (valeur par défaut pour git 1.x).
    • upstream - pousse la branche courante sur sa branche remote (upstream).
    • tracking - dépréciée (replacée par upstream)
    • current - pousse la branche courante sur une branche remote de même nom.
    • simple identique à upstream mais il faut que la branche courante soit trackée (valeur par défaut pour git 2.x).


    Personnellement je conseille d'installer le mode current : 'git config push.default current'... pour travailler sur des branches de même nom en local/remote !

    a+
    Philippe

  6. #6
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Points : 1 532
    Points
    1 532
    Par défaut Bien
    Bonjour,

    Merci pour la précision.
    Et je suis d'accord avec ton avis.

    Olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

Discussions similaires

  1. Fonction pour calculer la différence entre deux dates à base 360j
    Par messi1987 dans le forum Développement
    Réponses: 11
    Dernier message: 11/09/2018, 11h17
  2. Différence entre deux commandes
    Par Amnael dans le forum GIT
    Réponses: 1
    Dernier message: 22/05/2017, 13h59
  3. [Git] Différence entre deux configurations push
    Par utilisateur38 dans le forum Eclipse
    Réponses: 0
    Dernier message: 12/11/2015, 20h11
  4. Différence entre deux commandes del
    Par yohann64 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 16/12/2014, 17h40
  5. Outils sur les différences entre deux fichiers XML
    Par Community Management dans le forum XML/XSL et SOAP
    Réponses: 19
    Dernier message: 21/07/2008, 15h21

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