首页 > 解决方案 > 我在 git repo 中更改了一个没有其他人更改的文件,但是当我推送它时它会抱怨 - 为什么?

问题描述

显示的错误消息是“更新被拒绝,因为远程仓库包含您没有的工作。” 我会认为如果特定文件没有被其他人更改,那么该文件的推送会成功——为什么 Git 会这样工作?

我想这个问题的核心是我是否理解正在发生的事情——Git 是否真的像我理解的那样工作,这是对 repo 中任何文件的更改阻止用户推送提交,即使提交中的文件不是也被另一个用户更改。这对我来说是令人惊讶的部分,因为如果仅在(由另一个或多个用户)对提交中的文件进行更改时拒绝推送,它似乎也可以正常工作(甚至更好)。

标签: gitgit-bash

解决方案


您的标题说which no one else changed,但这里可能的情况是,实际上其他人已将新提交推送到您当前正在处理的远程分支。解决这个问题的典型方法是只做一个git pull

# from your branch
git pull origin your_branch

这将从远程带来更改。解决任何可能的合并冲突后,您可以提交您的工作,然后推送应该可以工作。


推荐阅读