8
votes

Git Push n'échoue pas mais ne fonctionne pas

J'utilise Git et je suis devant plusieurs problèmes: Je peux pousser, mes collègues peuvent le tirer et le contraire. Mais la version qui se trouve sur la télécommande n'est pas à jour: si j'écris un test dans le HTML, personne n'a pu le voir sauf sur la version locale ... Je pensais que cela pourrait venir de la branche qui se trouve sur la télécommande ... N'est-ce pas?

Edit 1: Je vais essayer d'être plus précis: J'ai une répétition privée qui est sur un serveur privé. Ce serveur est utilisé pour héberger le site Web. Quand je m'engage -> tirer -> poussez tout fonctionne bien. Quand mon collègue fait la même chose, ça va bien. Sur notre version locale, toutes les modifications apparaissent comme mon test "test". Mais sur le serveur, rien n'est à jour. Est-ce la mauvaise branche sur le serveur ou quelque chose?

PS: Désolé pour mon anglais, ce n'est pas ma langue maternelle.


8 commentaires

Avez-vous été commis en premier?


Quelles sont les sorties de git distant -v -v et branche git


origine ssh: //xx.xx.xx.xx.xx/url/x.git * Production


J'ai commis d'abord ...


Votre «repo privé» est-il de ne pas voir la modification d'un référentiel nu ou d'une normale? git push ne mettra pas à jour le répertoire de travail de la télécommande qu'elle appuie, uniquement la boutique d'objets ... et, en fait, si vous essayez d'appuyer sur la branche qui est actuellement vérifiée dans la télécommande , ça devrait échouer ...


Si cela devrait échouer, devrais-je avoir un message d'erreur? Comment puis-je savoir si le repo est un repo à nu ou une normale?


Si git config --get core.bare exécutoire dans ce repique rapporte "FALSE", il existe un répertoire de travail associé. Et oui, essayant de pousser la branche actuellement céréalière à un référentiel non nu doit produire un message. Mais poussant une branche différente réussira, mais ne mettra pas à jour le répertoire de travail.


Devrais-je l'exécuter dans ma copie de travail ou sur le serveur? Comment cela pourrait-il fonctionner auparavant si c'est un repo pas nue ??


3 Réponses :


1
votes

La question n'est pas assez claire, mais plusieurs choses peuvent aller mal.

  • Vous devez GIT COMMIT code> changements en premier. Sinon, vos modifications ne sont tout simplement pas stockées (inconnues de git code>). P> li>

  • Vous avez commis sur une branche spéciale. Dans ce cas, les commits sont réellement stockés sur le serveur, mais non montré par défaut. Les autres utilisateurs peuvent la caisse de la branche en effectuant p>

    git remote
    
  • vous et vos travailleurs utilisent différents serveurs distants. Vous pouvez vérifier cela en exécutant p>

    git checkout <branch>
    
  • ... p> li> ul> p>


4 commentaires

J'ai pris d'abord GIT COMMITE, Direction Git dit * La télécommande de production et git ne raconte rien de spécial


Quelle version de git êtes-vous en cours d'exécution?


Comment inspectez-vous votre télécommande? Par défaut, la télécommande figurera sur la branche Master , vous devrez donc GIT Checkout Production ...


Je cours le 1.9.4 V? En fait, ma télécommande a bien fonctionné bien depuis hier, quand j'ai poussé, tout était cassé. Dois-je me connecter physiquement à la télécommande pour faire le CO?



3
votes

Si vous faites une «poussée de git» simple, vous devrez peut-être faire «le nom d'origine d'origine GIT». Si le fichier est engagé, bien sûr.

mise à jour: vérifiez votre fichier .git / config. Vous devriez avoir une origine spécifiée et votre succursale doit faire référence à l'origine. Peut-être qu'il y a une inadéquation. xxx


3 commentaires

Il me dit: "tout à jour"


Peut-être que vous poussez à un endroit différent par accident? Mise à jour de ma réponse avec plus d'informations.


C'est la même chose que mon .git / config.



0
votes

J'ai eu le même problème qui a l'air vraiment similaire à ce que Vautrinr avait. Je me suis également engagé et j'ai eu la même réponse à certaines des choses suggérées dans les réponses précédentes.

La solution finale à mon problème vient de Cette réponse géniale . Il s'avère que ma tête était détachée et tous les commits que je ne faisais pas entré dans la branche principale. Lorsque vous essayez d'appuyer sur le serveur distant, Git n'a pas trouvé de différence entre les deux branches principales et donc «tout à jour.» Après avoir fixé le problème de la tête détachée, j'ai finalement pu pousser mes changements.

J'espère que cette aide.


0 commentaires