git rebase遇到的一个疑问
仅有的幸福
仅有的幸福 2017-05-02 09:19:29
0
2
575

最近工作git管理方面遇到一个疑问,如下:
我有两个分支devfeature 分支,目前出现如下疑问,
我在feature分支先执行 git pull origin feature操作,更新本地的分支到最新,然后执行了git rebase dev操作,最后执行git push origin feature时会遇到如下错误

To ssh://xxx@git.xxxx.com/project_xx/xxx.git
 ! [rejected]        feature -> feature (non-fast-forward)
error: failed to push some refs to 'ssh://xxx@git.xxxx.com/project_xx/xxx.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

最后再执行一次git pull origin feature操作才能成功,这样会产生一条merge log,并且内容为空Showing 0 changed files

疑问,为什么我之前已经执行了pull更新到最新了?不知道是不是我操作流程的问题,请大牛们指教,谢谢!

仅有的幸福
仅有的幸福

répondre à tous(2)
世界只因有你

La question devrait être comme ceci :
Tout d'abord, votre branche de fonctionnalité est une branche distante. Après l'avoir rebasée, la branche de fonctionnalité locale sera sur la branche de développement, mais la branche de suivi à distance de la fonctionnalité, origin/feature, est toujours à son emplacement d'origine. Ensuite, si vous poussez comme ça, git ne le permettra pas. Lors du push, git vérifiera la validation historique de la branche. Lorsque le dernier commit de votre branche actuelle n'est pas le dernier commit sur la branche distante, git vous empêchera de soumettre. . Vous devez tirer pour suivre la nouvelle branche.
De plus, ce n’est peut-être pas une bonne idée de séparer les succursales de suivi des succursales locales. Si votre objectif est de supprimer la branche de suivi, puis de synchroniser la structure de la branche locale avec l'extrémité distante. Vous pouvez d'abord supprimer la fonctionnalité distante, git push origin :feature afin que la branche de suivi locale disparaisse. Ensuite, vous pouvez simplement pousser.

Ty80

Désolé, après avoir retesté, j'ai trouvé que c'était complètement différent de ce que je pensais.
Un rejet se produira effectivement, vous ne pourrez que tirer et pousser à nouveau, et des conflits pourraient survenir.
[D'après mes propres expériences, car après le rebase, origin/feature a bifurqué, vous pouvez utiliser git gui pour le voir, car le rebase changera la relation parent-enfant entre les commits]

  • Il est recommandé de rebaser uniquement la branche locale

http://stackoverflow.com/questions/8939977/git-push-rejected-after-fea...

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal