J'essaye de mettre à jour un référentiel Git sur GitHub. J'ai fait un tas de changements, je les ai ajoutés, je me suis engagé puis j'ai essayé de faire un git push
. La réponse me dit que tout est à jour, mais ce n'est clairement pas le cas.
git remote show origin
répond avec le référentiel auquel je m'attendais.
Pourquoi Git me dit-il que le référentiel est à jour alors qu'il y a des commits locaux qui ne sont pas visibles sur le référentiel?
[searchgraph] git status
# On branch develop
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# Capfile
# config/deploy.rb
nothing added to commit but untracked files present (use "git add" to track)
[searchgraph] git add .
[searchgraph] git status
# On branch develop
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: Capfile
# new file: config/deploy.rb
#
[searchgraph] git commit -m "Added Capistrano deployment"
[develop 12e8af7] Added Capistrano deployment
2 files changed, 26 insertions(+), 0 deletions(-)
create mode 100644 Capfile
create mode 100644 config/deploy.rb
[searchgraph] git push
Everything up-to-date
[searchgraph] git status
# On branch develop
nothing to commit (working directory clean)
git push origin x
ne mettais toujours pas en place la branche x pour être poussé à l'avenir. Cela était dû à un pushspec spécifique dans la.gitconfig
[remote "origin"]
section qui causait le comportement de git.Cela m'est arrivé lorsque mon application SourceTree s'est plantée lors de la mise en place. Et sur la ligne de commande, il semblait que le précédent
git add
avait été corrompu. Si tel est le cas, essayez:Sur la dernière commande, vous devrez peut-être définir la branche.
Gardez à l'esprit que cela suffit si vous n'avez pas effectué de branchement ou quoi que ce soit de ce genre. Dans ce cas, assurez-vous de pousser vers la bonne branche comme
git push origin develop
.la source
Essayer:
la source
Veuillez essayer d'aller au dernier commit, puis faites
git push origin HEAD:master
.la source
Push the current branch to the remote ref matching master in the origin repository. This form is convenient to push the current branch without thinking about its local name.
git push
: / Cela a fonctionné pour moi aussi:git push origin HEAD:my_branch_name
.Pour mon cas, aucune des autres solutions n'a fonctionné. J'ai dû faire une sauvegarde des nouveaux fichiers modifiés (indiqués avec
git status
), et exécuter un fichiergit reset --hard
. Cela m'a permis de me réaligner avec le serveur distant. Ajout de nouveaux fichiers modifiés et exécutionA fait le tour. J'espère que cela aide quelqu'un, comme solution de «dernière chance».
la source
À l'heure actuelle, il apparaît que vous êtes sur la branche de développement. Avez-vous une branche de développement sur votre origine? Sinon, essayez
git push origin develop
.git push
fonctionnera une fois qu'il connaîtra une branche de développement sur votre origine.Pour en savoir plus, je jetterais un œil aux pages de manuel de git-push , en particulier à la section des exemples.
la source
Pour être précis, si vous souhaitez fusionner quelque chose à maîtriser, vous pouvez suivre les étapes ci-dessous.
C'est une pratique courante dans le modèle de demande d'extraction créer dans une nouvelle branche locale, puis pousser cette branche vers distante. Pour cela, vous devez mentionner où vous souhaitez appliquer vos modifications à distance. Vous pouvez le faire en mentionnant la télécommande au moment du push.
Si vous souhaitez créer une branche autre que le nom de votre branche locale, vous pouvez le faire avec la commande suivante.
la source
Merci à Sam Stokes. Selon sa réponse, vous pouvez résoudre le problème de manière différente (j'ai utilisé de cette manière). Après avoir mis à jour votre répertoire de développement, vous devez le réinitialiser
Ensuite, vous pouvez valider et pousser les mises à jour vers master
la source
git init
et ouvrez un nouvel onglet de commande, tapez:git push origin branch_name
Cela m'est arrivé lorsque je suis
^C
au milieu d'ungit push
sur GitHub. Cependant, GitHub n'a pas montré que les modifications avaient été apportées.Pour résoudre ce problème, j'ai apporté une modification à mon arbre de travail, engagé, puis poussé à nouveau. Cela a parfaitement fonctionné.
la source
Cela m'est arrivé. Je viens de réengager les changements, puis cela a poussé.
la source
J'ai essayé de nombreuses méthodes, y compris définies ici. Ce que j'ai c'est,
Assurez-vous que le nom du référentiel est valide. Le meilleur moyen est de copier le lien depuis le site du référentiel et de le coller dans git bash.
Assurez-vous que vous avez validé les fichiers sélectionnés.
Si les deux étapes ne fonctionnent pas, essayez
git push -u -f origin master
la source
Au lieu de cela, vous pouvez essayer ce qui suit. Vous n'êtes pas obligé d'y aller
master
; vous pouvez forcer directement les modifications depuis votre branche elle-même.Comme expliqué ci-dessus, lorsque vous effectuez un rebase, vous modifiez l'historique de votre branche. En conséquence, si vous essayez de faire une opération normale
git push
après un rebase, Git la rejettera car il n'y a pas de chemin direct entre le commit sur le serveur et le commit sur votre branche. Au lieu de cela, vous devrez utiliser l' indicateur-f
ou--force
pour dire à Git que oui, vous savez vraiment ce que vous faites. Lorsque vous effectuez des poussées forcées, il est fortement recommandé de définir votrepush.default
paramètre de configuration sur simple, qui est la valeur par défaut dans Git 2.0. Pour vous assurer que votre configuration est correcte, exécutez:Une fois que c'est correct, vous pouvez simplement exécuter:
Et vérifiez votre pull request. Il devrait être mis à jour!
Allez au bas de Comment rebaser une demande d' extraction pour plus de détails.
la source
Assurez-vous également de pousser vers la bonne branche.
la source
Cela m'est arrivé une fois que j'ai essayé de pousser depuis une nouvelle branche et que j'ai utilisé à la
git push origin master
place. Vous devez soit:git push origin your_new_branch
si vous voulez que cette branche apparaisse également dans le référentiel distant.git merge origin master
.la source
la source