git pull --rebase但不要尝试合并某些文件

时间:2016-01-06 10:22:57

标签: git

我有一个本地分支机构,其中包含" foobar" 这个我不想合并的文件 当我git pull --rebase origin / master 的分支时,使用 origin / master

我目前正在做:

 cp foobar /tmp
 git pull --rebase
 cp /tmp/foobar .
 git add foobar
 git rebase --continue

有没有办法避免这一切,只是在pull --rebase期间忽略所述文件?

NB /对于那些问我在做什么的人:本地分支 foobar origin / master ' s foobar的完全重写,我希望它不会与 master 合并,直到我的本地功能完全结束。

2 个答案:

答案 0 :(得分:3)

将文件添加到.gitignore,以便git无法检测到该文件。

如果您仍想要存储库中的文件(例如,使用默认值),则应使用跟踪文件上的assume-unchanged标记。

https://git-scm.com/docs/git-update-index

- [无糖]假设-不变

  

指定此标志时,不会更新为路径记录的对象名称   相反,此选项设置/取消设置路径的“假设未更改”位。

     

当“假定未更改”位打开时,用户承诺不更改文件并允许Git假定工作树文件与索引中记录的文件匹配。如果要更改工作树文件,则需要取消设置该位以告知Git。当在具有非常慢的lstat(2)系统调用(例如cifs)的文件系统上处理大项目时,这有时很有用。

     

如果需要在索引中修改此文件,Git将失败(优雅地),例如合并时提交;因此,如果上游更改了假定未跟踪文件,则需要手动处理该情况。

enter image description here

答案 1 :(得分:0)

我找到了解决方案来执行git pull rebase但是如果出现冲突则更喜欢当前的分支版本:

git pull --rebase -X ours

-X代表“策略”,并在man git-rebase中记录。