我所在的团队中有几个开发人员在Bitbucket上使用Git。我们都在一个开发分支上工作,在发布之前不催促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

我本以为,如果我保持这个顺序,就不会收到合并冲突。我想我错了。

我已经在谷歌和Stack Overflow上找了几个小时,并遵循了不同的指示,但我仍然无法将Git推送到开发分支。


当前回答

Git pull <remote> master:dev将获取远程/master分支并将其合并到本地/dev分支中。

Git pull <remote> dev将获取远程/dev分支,并将其合并到当前分支中。

我想你说过冲突的提交是在远程/dev上,所以这可能是你想要获取和合并的分支。

在这种情况下,您实际上并没有将冲突合并到本地分支中,这有点奇怪,因为您说您在工作副本中看到了不正确的代码。您可能需要检查remote/master中发生了什么。

其他回答

推力

Git push -f origin master

好吧,实际上github比我们想象的要简单得多,它绝对会发生,每当我们试图推,即使我们显式地插入一些文件在我们的git存储库,所以,为了解决这个问题,简单地尝试..

: git拉

然后. .

:git push

注意:如果你不小心卡在vim编辑器拉你的存储库比不要担心,只是关闭vim编辑器,并尝试推:)

我也有同样的问题。确保你在正确的Heroku帐户。

当我试图把更改推到错误的Heroku账户时出现了。

我是这样解决这个问题的:

Git拉源主 Git push origin master

这通常发生在您的远程分支没有更新时。 在这之后,如果你得到一个类似"请输入提交信息"的错误 参考这个(对我来说,王小虎的回答是有效的:))

当我们试图推送到远程存储库,但已经在远程上创建了一个尚未提取的新文件时,就会发生这种情况,比如说Readme。在这种情况下,正如错误所示

Git拒绝更新

由于我们在本地环境中没有采取更新的远程。 所以先从远程取拉

git pull

它将更新您的本地存储库并添加一个新的Readme文件。 然后将更新后的更改推送到远程

git push origin master