我不能为我的生活找到任何体面的解释,“[文件]:需要更新”的消息,git有时会不时吐出来。甚至官方的git FAQ也解释了这个标记为TODO。如果有人能解释A)意味着什么;和B)如何解决它,我将非常感激。
答案 0 :(得分:100)
这意味着您正尝试从某处合并更改,但更改包括修改脏文件(当前在工作树中修改)。您需要提交未完成的更改,或者存储它们,拉/退出/合并/无论您正在做什么来更新和解除支持
答案 1 :(得分:19)
正如其他人所指出的那样, 需要更新 消息意味着该文件脏,或者换句话说,过时了。但是,不是重置并重新开始,可以做的只是git status
然后git add <file>
,如果它位于已更改列表中。因为您之前已经可以添加该文件,但之后又进行了更改。这发生在我身上,通过这个简单的add
,我解决了这个问题。
答案 2 :(得分:6)
登录您的生产/目标服务器cd
到包含您的应用程序的目录并执行这两个命令。
<强> 1。重置为最新版本
警告,这会删除所有更改:
git reset --hard HEAD
<强> 2。拉动更改
git pull origin master
答案 3 :(得分:2)
就像链接的其他问题的答案所说,该消息只是意味着您有未完成的更改。你也得到这个,例如如果您使用git add
进行一些更改,那么请改变主意并执行git reset HEAD file
以重新开始。
答案 4 :(得分:1)
当rebase进程对不在目标分支上的文件进行其他更改时,会发生此错误。
对我而言,棘手的部分是我的仓库中的.gitattributes
文件。在另一个分支中添加了新的二进制文件类型,但它的处理被强制为文本文件。当通过git从repo下载文件时,EOL(实际上它的二进制值字节)被替换 - 导致二进制差异。
添加新条目以将新文件类型作为二进制文件处理并重试整个过程解决了我的问题。
答案 5 :(得分:0)
就我而言,我一直在获得
assets/ElipseThree.png: needs update
You must edit all merge conflicts and then
mark them as resolved using git add
我的目录中有这些文件,但在当前分支中已将其重命名。 所以要解决,我跑了
$ git mv assets/ElipseThree.png assets/elipseThree.png
$ git add assets/elipseHalfFull.png
$ git rebase --continue
它使我得以继续