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 :

git log/status renvoient un statut qui est FAUX vis-à-vis du remote !


Sujet :

GIT

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 18
    Par défaut git log/status renvoient un statut qui est FAUX vis-à-vis du remote !
    Bonjour à tous,

    à des fins de pratique, j'ai fait ceci sur git :

    - créé un remote via git init --bare
    - créé un répertoire mach1 qui pointe sur ce remote (git remote add origin ../remote)
    - créé un répertoire mach2 qui pointe aussi sur ce remote

    - je fais des tests d'ajout et de commit sur mach1

    - et là je fais un premier push de ma branch master de mach1 vers le remote, aucun problème

    - ensuite je vais dans mach2 pour faire un pull, la aussi no pb ça me redescends bien tout ce que mach1 avait "pushé"

    - j'ajoute ensuite un fichier et le commit puis fait un push, aucun problème

    - je retourne dans mach1 et là je tape "git status" puis "git log" et là gros problème :

    les deux me disent que je suis "up to date" avec le remote alors que c'est FAUX !!!! Mais c'est quoi cette hérésie ??????

    Question : le git log et le git status ne font pas par défaut le check vis-à-vis du remote auquel on est relié en local ???? Quoi qu'il en soit même si c'est pas le cas pourquoi afficher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    On branch master
    Your branch is up to date with 'origin/master'.
    
    nothing to commit, working tree clean
    puisque c'est FAUX !

    J'ai bossé avec cvs et avec svn, j'ai jamais eu ce problème : un "log" ou un "status" me donnait toujours le statut vis-à-vis du repository. Je veux bien que git fonctionne différemment mais de là à donner des infos fausses, j'ai forcément du louper quelque chose ...

    Any clue ?

    [EDIT]

    J'ai trouvé en fait, faut faire un "git fetch origin" au préalable et là on redescend les dernières infos de modif qui sont sur le remote, suite à quoi le "git status" et le "git log" sont corrects :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ git status
    On branch master
    Your branch is behind 'origin/master' by 2 commits, and can be fast-forwarded.
      (use "git pull" to update your local branch)
    
    nothing to commit, working tree clean
    Mais je trouve complètement aberrant que le status et le log se permette de mettre l'info que la branche locale est alignée avec la branche remote quand c'est absolument pas le cas !!!

  2. #2
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 18
    Par défaut
    Suis-je le seul à avoir ce problème ? Y a t il des gourous de git qui puissent me confirmer que c'est bien ainsi que ça fonctionne / s'il y a moyen de paramétrer git pour qu'il évite de dire des mensonges ?

    Merci beaucoup

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 166
    Billets dans le blog
    154
    Par défaut
    Bonjour,

    Comme vous l'avez dit, pour faire redescendre des données, il faut faire un fetch. La différence entre git et SVN ou CVS, est que git est distribué. La copie que vous avez, c'est une copie complète qui peut faire "autorité". Elle peut fonctionner de manière indépendante du reste du projet. Par conséquent, pourquoi elle irait faire un fetch, alors que vous aviez peut être décider d'arrêter tout lien avec la version "originale". De plus, comment savoir d'où faire le fetch, si vous avez N remote (car rien ne vous oblige à fetch origin) ?
    Donc, pour moi, c'est en effet une philosophie différente.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 18
    Par défaut
    Bonjour et merci beaucoup pour votre réponse, je comprends maintenant effectivement beaucoup mieux la difference de philo c'est vrai qu'on peut avoir plusieurs remote (meme si c'est un peu ... bizarre car en terme de gestion ça doit pas etre simple, je serais curieux de voir les cas d'utilisation - EDIT : en fait en y réfléchissant non c'est assez simple : si on parle de composants différents, ils peuvent très bien pointer sur des repositories différents)

    Reste que le message " up to date with 'origin/master' " est quand meme pour moi une hérésie parce que git ne peut pas affirmer ceci s'il ne fait pas le controle auparavant, du moins c'est mon avis. Autant ne pas mettre ce message ou le changer en disant "To see status with remote repositories, please use "git fetch" function before calling "git status" or "git log"

    Merci encore pour votre réponse

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/02/2019, 17h42
  2. [VB.NET] Comment supprimer un fichier qui est utilisé ?
    Par Toon94 dans le forum Windows Forms
    Réponses: 12
    Dernier message: 13/06/2010, 12h59
  3. [VBA][SQL] Paramètre manquant (ce qui est faux)
    Par CinErarY dans le forum Access
    Réponses: 4
    Dernier message: 24/12/2006, 17h10
  4. Réponses: 2
    Dernier message: 16/10/2003, 17h17
  5. Une table qui existe mais qui est inconnu! ?
    Par Nino dans le forum InterBase
    Réponses: 6
    Dernier message: 13/06/2003, 11h47

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