2010-11-23 7 views
1

je faisais face à une situation qui me laisse perplexe, mais je suppose que la réponse est très simple, il est juste que je ne peux pas le voir ... Espérons que quelqu'un peut me aiderconfondu avec git-push

J'ai un git repo. Statut git dit que j'ai 4 commits faisaient la queue:

]$ git status 
# On branch master 
# Your branch is ahead of 'origin/master' by 4 commits. 
# 

nothing to commit (working directory clean) 

donc je fais-git push (git push origin) et il semble bien, à savoir je n'ai rien à pousser. Mais quand je tire (ou récupère + fusionne) le repo dans un autre répertoire, les changements n'apparaissent pas.

De plus, je peux tirer de la télécommande dans le répertoire local (git pull origin) qui se traduit par:

+ a4ac30f...10164ca master  -> origin/master (forced update) 
Already up-to-date. 

et après que je suis à nouveau 4 engage à venir, à savoir dans la même situation que j'ai commencé. Je peux donc répéter les deux commandes:

git push origin 

qui se traduit toujours:

]$ git push origin -v 
Pushing to http://myserver.com/src.git/myrepo 
Fetching remote heads... 
    refs/ 
    refs/heads/ 
    refs/tags/ 
Everything up-to-date 

et

git pull origin 

dont le résultat est toujours cité plus haut nombre infini de fois et rien ne se passe, après le premier je suis toujours "Everything up-to-date" et après le deuxième je suis toujours "ahead of 'origin/master' by 4 commits"

Dans les deux référentiels locaux, l'URL de recherche et l'URL de destination sont les mêmes. git remote show origin dit:

HEAD branch: master 
    Remote branches: 
    git-svn tracked 
    master tracked 
    Local branch configured for 'git pull': 
    master merges with remote master 
    Local ref configured for 'git push': 
    master pushes to master (fast-forwardable) 

Best, Tim

+0

Avez-vous réglé 'push.default' sur quelque chose d'inhabituel? – Cascabel

+0

J'utilise par défaut push.default (je n'ai rien défini par moi-même) – tnorgd

+0

'git push origin' imprime" Tout est à jour ", non? Si vous examinez votre historique ('git log --graph' ou' gitk') voyez-vous votre maître quatre commits linéairement devant l'origine/maître? – Cascabel

Répondre

0

Il semble que votre branche principale n'est pas configuré pour suivre l'origine/maître, et donc git push ignore complètement. Essayez git push origin master pour lui dire spécifiquement quelle branche pousser.

+1

La sortie soumise de "git status" me fait douter de votre explication. Il dit "Votre branche est en avance sur 'origin/master' par 4 commits." Ce message n'implique-t-il pas que la branche est configurée pour suivre l'origine/le maître? –

+0

C'est possible. Mais jusqu'à ce que l'OP essaye la commande que j'ai listée, nous pouvons seulement deviner ce que 'git push origin' est en train de faire - il ne semble pas qu'il fasse quoi que ce soit. – cdhowie

1

OK, je l'ai résolu! Le problème était que certains précédents push ne sont pas allés correctement et la télécommande était foutue. Je me suis connecté au serveur distant (basé sur WebDAV) et j'ai exécuté chown -R wwwrun src.git. Ensuite, la poussée suivante a fait le travail

Questions connexes