2017-06-22 1 views
0

Je suis le seul développeur sur ce projet mais je travaille sur plusieurs machines différentes. J'ai un compte GitHub privé et valide tous les changements localement et ensuite à ce repo. Cela a fonctionné parfaitement pendant 6 mois ou plus, mais maintenant, quand je clone un référentiel, certaines références manquent. Il semble que le repo n'est pas synchronisé avec mon projet local et peut-être avec mon repo local. (Comment savoir si mon repo local est également désynchronisé?) De toute façon, je dois maintenant faire en sorte que le repo GitHub distant corresponde à ce que j'ai dans mon projet local. Comment puis-je faire cela? J'ai essayé de chercher une solution, mais je n'ai pas trouvé le scénario exact et je ne veux pas que le contraire se produise et que je synchronise accidentellement le repo distant avec mon projet local. J'utilise VS2013 et j'ai fait toutes les opérations de commit et de pull grâce à cette application. Je ne suis pas vraiment familier avec d'autres outils git donc si vous suggérez quelque chose qui nécessite un autre outil, s'il vous plaît laissez-moi savoir l'outil que vous utilisez.Github Repo est désynchronisé avec mon projet local utilisant VS2013

Merci

Earl

Répondre

0

Si vous souhaitez synchroniser ensuite votre repo local avec git il suffit d'utiliser git push pour synchroniser vos modifications localement commises dans le référentiel distant.

+0

Tout est déjà engagé ... c'est le problème, c'est encore désynchronisé. – earlxtr

+0

Avez-vous essayé de pousser à distance? –

+0

Oui, j'ai commis à la fois localement et à distance ... mais la télécommande n'est pas synchronisée avec locale. Quelque chose s'est désynchronisé et j'essaie de comprendre comment les synchroniser. – earlxtr

0

Je suppose que vous avez des branches qui ne sont pas poussées ou quelque chose comme ça. Vous pouvez le vérifier en procédant comme suit (dans votre git locale, utilisez votre plus à jour git, à savoir celui que vous avez fait le plus de travail tôt):

git for-each-ref --format="%(refname:short) %(upstream:track)" refs/heads 

Note: That line was borrowed from here - answer number 2

Cela vous dira si vous êtes en avance ou en retard sur toutes vos succursales. Pour chaque branche:

  • Si elle vous dit que vous êtes derrière vous devez faire un git pull <remote> <branch>.
  • Si elle vous dit que vous êtes en avance, alors vous devez faire un git push <remote> <branch>

Une fois que votre premier repo local est en répétition à jour ce processus sur vos autres clones locaux.

+0

Lorsque j'exécute la première commande, elle revient simplement avec le mot "master". Cela signifie-t-il quelque chose? – earlxtr

+0

earlt @ XXXXXX MINGW32 /c/Code/EngA.PriceEngine (maître) $ git pour chaque ref --format = "% (refname: court)% (en amont: piste)" refs/têtes master – earlxtr

+0

signifie que vous avez une branche locale appelée «maître» et sa mise à jour avec la télécommande. Si vous supprimez la partie "refs/heads" à la fin, elle passera aussi par les branches distantes. Avez-vous beaucoup de branches? Peut-être que vous pouvez imprimer la sortie de 'git branch -a'. Vous pouvez aussi faire un 'git fetch' et relancer les commandes (juste pour vous assurer que vous êtes synchronisé avec la télécommande - git fetch obtient toutes les modifications de la télécommande (mais ne les fusionne pas). –

0

Il s'avère que j'étais vraiment sur la mauvaise piste ici. Je travaillais sur VS2013 V5 sur une machine et sur VS2013 V4 sur l'autre. L'un des paquets de Nuget n'était pas compatible avec V4, donc il casserait l'installation de nuget et provoquerait la rupture de toutes les références de nuget. Une fois que j'ai mis à niveau tous les clients vers V5, tout a fonctionné. Merci à tous pour votre aide. J'ai juste pris un peu pour comprendre ce qui se passait vraiment.