Erreur lors de « git push » à github
Question
J'ai un dépôt public à github.com avec 2 branches: master
et test
J'ai créé un nouveau répertoire et localement fait:
[ ] git clone git@github.com:{username}/{projectname}.git
Je créé une nouvelle branche nommée my_test
avec
[ ] git branch my_test
et tournés vers elle.
[ ] git checkout my_test
Alors je l'ai fusionné de ma branche test
de mon dépôt public
[ ] git merge origin/test
et il a donné lieu à une avance rapide.
J'ai fait quelques changements et les commis.
Ensuite, j'ai essayé de pousser la branche locale my_test
à la branche test
public github avec
[ ] git push git@github.com:{username}/{projectname}.git test
mais j'eu cette erreur:
error: src refspec test does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'git@github.com:{username}/{projectname}.git
Qu'est-ce que je fais mal?
La solution
Peut-être essayer:
git push git@github.com:{username}/{projectname}.git HEAD:test
Le format du dernier paramètre sur cette ligne de commande est un refspec qui est une ref source suivi par deux points, puis l'arbitre de destination. Vous pouvez également utiliser votre nom de la branche locale (my_test
) au lieu de HEAD pour être certain que vous poussez la branche correcte.
La documentation git push
a plus détails sur ce paramètre.
Autres conseils
En outre, vous n'avez pas besoin de taper directement l'URL chaque fois que vous voulez pousser. Lorsque vous avez exécuté le clone, git sauvé cette URL comme « origine », c'est la raison pour laquelle vous pouvez exécuter quelque chose comme « fusion origine / test » - cela signifie que la branche « test » sur votre serveur « origine ». Ainsi, la façon la plus simple de pousser à votre serveur dans ce cas serait:
git push origin my_test:test
qui va pousser votre branche locale « my_test » à la branche « test » sur votre serveur « origine ». Si vous aviez appelé votre succursale locale la même chose que la branche sur le serveur, le colon n'est pas neccesary, vous pouvez simplement faire:
git push origin test
Cette erreur est également si vous essayez de pousser vers un nouveau référentiel sans avoir rien commis d'abord. Essayez:
git add -A
git commit -am 'Initial commit'
Et puis essayer à nouveau pousser.
Je pense ici, vous aurez besoin de mettre en place le suivi de la branche. S'il vous plaît exécutez les commandes suivantes pour activer le suivi
git branch --track my_test origin/my_test
Pour tester
git push -u origin my_test
git pull origin my_test
Vous devez vous assurer que votre référentiel local ont le même nom que votre dépôt distant que vous essayez de pousser.
Tout d'abord, le dépôt de changement à l'aide « test » de la branche git pour que « my_test » serait « test ». En second lieu, tout essai d'origine git push