-假定同步时未更改的文件会发生什么?

时间:2019-07-29 22:41:02

标签: git

我正在使用git代码库。我想更改服务器跟踪的项目xml文件。我想通过以下方式进行设置:

  • 应该忽略我的本地更改,并且永远不要将其发送到服务器。
  • 服务器应在同步时覆盖我的本地更改。

当前我使用

git update-index --assume-unchanged [my file name]

但是我不确定服务器更新它时会发生什么。

1 个答案:

答案 0 :(得分:3)

docs

  

--[no-]assume-unchanged

     

...当“假定未更改”位打开时,[this]允许Git假定工作树文件与索引中记录的文件匹配。如果要更改工作树文件,则需要取消设置该位以告知Git。

     

如果需要修改索引中的该文件,Git将失败(正常)。合并提交时; 因此,如果假定未跟踪的文件在上游进行了更改,则您将需要手动处理这种情况。

因此,您需要先git update-index --no-assume-unchanged文件,然后再进行更改。

示例

$ git status

  Changes not staged for commit:

      modified:   some-file.txt

$ git update-index --assume-unchanged some-file.txt

$ git status

  nothing to commit, working tree clean

$ git pull

  a1b2c3d4..a4b3c2d1  master     -> origin/master
  Updating a1b2c3d4..a4b3c2d1
  error: Your local changes to the following files would be overwritten by merge:
      some-file.txt
  Please commit your changes or stash them before you merge.
  Aborting