错误 "更新被拒绝,因为远程包含您本地没有的工作"

16 浏览
0 Comments

错误 "更新被拒绝,因为远程包含您本地没有的工作"

我与几个开发人员一起在Bitbucket上使用Git。我们都在一个开发分支上工作,不在发布前推送到主分支。

其中一个开发人员错误地提交了代码,不小心覆盖了我的代码,现在我正在尝试将正确的代码推送回仓库。我已经读了几天关于这个错误的说明,但是现在我无法再推送到仓库,因为我得到了以下错误:

 ! [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,但是接着我收到一个合并冲突。在为合并冲突输入消息后,我的本地代码现在是另一个开发人员意外上传的不正确的代码(从 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推送到开发分支。

admin 更改状态以发布 2023年5月21日
0
0 Comments

当我们尝试将更改推送到远程存储库,但在远程存储库中创建了一个尚未被拉取的新文件(比如Readme)时,就会发生这种情况。在这种情况下,就像错误提示一样,

git 拒绝更新

因为我们还没有在本地环境中获取更新的远程文件。

所以,首先从远程拉取

git pull

这将更新您的本地存储库并添加一个新的Readme文件。

然后将更新的更改推送到远程

git push origin master

0
0 Comments

您可以使用“强制推送”来覆盖Git执行的任何检查。在终端中使用以下命令:

git push -f origin master

但是,您将有可能忽视远程中已存在的工作内容。您正在有效地重写远程历史记录,使其与您的本地副本完全一致。

0