错误提示:“更新被拒绝,因为远程包含您本地没有的工作”。

275
我在一个使用Bitbucket上的团队中与几个开发人员一起工作,我们都在一个dev分支上工作,在发布之前不会推送到master
其中一个开发人员意外提交了错误的代码,导���覆盖了我的代码,现在我正在尝试将正确的代码推回到仓库。我已经阅读了几天有关此错误的资料,但是我无法再将代码推送到仓库中,因为我收到以下错误提示:
 ! [rejected]        master -> dev (fetch first)
error: failed to push some refs to 'https://myusername@bitbucket.org/repo_user/repo_name.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我按照指示进行了拉取操作,但是接着我遇到了合并冲突。在为合并冲突输入信息后,我的本地代码现在变成了另一个开发者意外上传的不正确的代码(如从pull中所预期的)。于是我用我在提交之前复制的备份替换了不正确的代码,但当我再次尝试推送时,出现了相同的错误。
如何解决这个问题?
以下是我运行的提交命令:
git pull remotename master:dev
git add --all
git commit -m "some message"
git pull remotename master:dev
git push remotename master:dev

我本以为如果我保持这个顺序,就不会收到合并冲突。看来我错了。
我在 Google 和 Stack Overflow 上搜索了几个小时,并按照不同的指示进行操作,但我仍然无法将 Git 推送到 dev 分支。

当您在另一个存储库的目录中时,执行git push命令会显示相同的错误消息......Git消息应该得到更新以反映这一点,特别是因为它的语气听起来非常权威,否则可能会让人误解。 - Scott Stensland
21个回答

0

1. git pull origin

2. 根据您的需求接受更改,例如保留传入或保留现有更改。

3. 如果没有其他操作,请使用 git add 。如果有其他操作,请执行相应的操作后再使用 git add

4. git commit -m "保留您的提交信息"

5. git push origin

这对我很有效。如果对您无效,请告诉我。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接