Git推拒绝“非快进”

我对git还是比较git目前正在使用它来在团队环境中pipe理我们的代码。 我有一些rebasing的问题,我解决了他们使用

 git checkout --ours filename.txt git add filename.txt git rebase --continue 

现在我想推进我的更改,并运行以下命令

 $ git push origin feature/my_feature_branch 

给我以下错误:

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

我能做些什么来摆脱错误?

PS:我正在尽量避免使用--force选项。

看起来,有人推动你最后的git fetchgit push之间的新提交。 在这种情况下,您需要重复您的步骤并my_feature_branch

 git fetch git rebase feature/my_feature_branch git push origin feature/my_feature_branch 

git fetch之后,我build议使用gitk --all来检查情况。

也许你没有在rebase之前获取远程更改,或者有人推动新的更改(当你重新devise和尝试推动时)。 试试这些步骤:

 #fetching remote 'feature/my_feature_branch' branch to the 'tmp' local branch git fetch origin feature/my_feature_branch:tmp #rebasing on local 'tmp' branch git rebase tmp #pushing local changes to the remote git push origin HEAD:feature/my_feature_branch #removing temporary created 'tmp' branch git branch -D tmp 

我有一个类似的问题,我解决了:git pull origin

在共享本地存储库上写入locking

我有这个问题,没有以上的build议帮助我。 我能够正确地获取一切。 但推动总是失败。 这是一个位于windows目录下的本地存储库,有几个客户端通过VMWare共享文件夹驱动程序来处理它。 看来,其中一个系统lockingGit存储库的写作。 停止相关的VMWare系统后,立即修复了所有的锁。 几乎不可能弄清楚哪个系统导致错误,所以我不得不一个一个地阻止它们,直到成功。

我有这个问题! 我试过:git fetch + git合并,但没有解决! 我试过:混帐拉,也没有解决

然后我试了这个,解决了我的问题(与工程师的答案类似):

 git fetch origin master:tmp git rebase tmp git push origin HEAD:master git branch -D tmp 

那么我在这里使用的build议,它拧我,因为它将我的本地代码直接合并到主。 …所以用一粒盐把所有这一切。 我的同事说,以下帮助解决了这个问题,需要重新分配我的分支。

  git branch --set-upstream-to=origin/feature/my-current-branch feature/my-current-branch