Git忽略本地文件更改

时间:2014-07-27 17:47:41

标签: git

我试过了两次

git update-index --assume-unchanged config/myconfig

修改.git/info/exclude并添加config/myconfig

然而,当我做git pull时,我总是得到:

  

更新0156abc..1cfd6a5   错误:合并将覆盖对以下文件的本地更改:       配置/的myconfig   请在合并之前提交更改或存储更改。   中止

我错过了什么?

4 个答案:

答案 0 :(得分:34)

git pull希望您删除或保存当前的工作,以便它触发的合并不会导致与您未提交的工作发生冲突。请注意,如果您所提取的更改在与本地未提交文件相同的位置创建文件,则只需删除/保存未跟踪的文件。

删除未提交的更改

跟踪文件

git checkout -f

未跟踪文件

git clean -fd

保存更改以供日后使用

跟踪文件

git stash

跟踪文件和未跟踪文件

git stash -u

git pull之后重新应用您的最新藏匿处:

git stash pop

答案 1 :(得分:7)

你很可能已经暂存了这些文件。

git add src/file/to/ignore

要撤消暂存的文件,

git reset head

这将取消暂存文件,允许以下git命令成功执行。

git update-index --assume-unchanged src/file/to/ignore

答案 2 :(得分:1)

您可能需要在git stash之前执行git pull,这是因为它正在读取您的旧配置文件。所以:

git stash
git pull
git commit -am <"say first commit">
git push

另见git-stash(1) Manual Page

答案 3 :(得分:0)

如果您不想进行本地更改,请执行以下操作以忽略(永久删除)本地更改。

  • 如果其未分期更改,请执行结帐(git checkout <filename>git checkout -- .
  • 如果分阶段更改,请先重置(git reset <filename>git reset),然后结帐(git checkout <filename>git checkout -- .

如果您不想丢失您的本地更改,请将其存储并拉动。稍后从stash合并您的更改。

  • 执行git stash,然后从回购git pull获取最新更改,然后合并来自藏匿git stash pop的更改