使git忽略并保留对某些文件的本地更改(与远程中的不同版本相比)

时间:2015-05-05 06:16:12

标签: git

我有一个git repo的本地工作副本,它需要进行一些更改才能进行本地测试,但我不希望在swift时将这些更改发送到远程和clang

基本上文件是:

add --all

我尝试将这些内容添加到commit,但/protected/config/* /protected/components/UserIdentity.php 仍会显示更改(已经对文件进行了更改)。

我需要将文件保留在遥控器中,但在本地它们必须被更改并且免于例如。 .git/info/exclude

有办法吗?

1 个答案:

答案 0 :(得分:1)

site的作者提出了一个解决方案:

git update-index --assume-unchanged <file>

将忽略对跟踪文件的本地修改和

git update-index --no-assume-unchanged <file>

将撤消上一个命令。即使使用git commit --all作为假设未更改的文件,这项工作也不会暂存。

阅读git-update-index man-page您还可以看到提交后此位未重置,因此您必须--no-assume-unchanged文件/路径或执行git update-index --really-refresh才能获得所有修改

如果与某个东西(分支/标记/提交)合并(例如在执行git pull时)在该文件中有修改,则会得到

error: Your local changes to the following files would be overwritten by merge:

错误,合并中止。

所以,不,如果上游有修改,它就不会使用git-pull。