我在我的存储库中有一个文件,我已经设置了assume位:
git update-index --assume-unchanged someFile.txt
有时,在存储库上做了一些工作后,该位被取消设置,文件自动不再是assume-unchanged
。
谁在摸它?在我显式地告诉git以下内容之前,我如何才能使其永久存在:
git update-index --no-assume-unchanged someFile.txt
这里发生了什么事?
编辑:我在本地更改的配置文件上使用假定不变位,并且永远不应该提交,更不用说推到上游了。我不想在git status
中看到它们,也不想在其他任何地方看到它们,除非我明确地告诉git我想要编辑和提交其中的一个。
编辑:好的,我想我成功地重现了这个问题。
我从不同的存储库提交了文件(没有--assume-unchanged
),拉出了我的存储库,果然,位被重置了。
因此,出现了两个问题:
发布于 2013-09-11 23:09:03
似乎--skip-worktree
+ sparse checkout可以允许这种行为。
来自git assume unchanged vs skip worktree - ignoring a symbolic link的
(经过一些上下文修改):
对于包含两种模式的repository.
core.sparseCheckout
设置为true :如果包含所有内容,则设置为*
;如果排除本地文件,则设置为!/path/to/someFile.txt
。手动将跳过工作树位设置为someFile.txt.现在你可以不用担心git会自动提交目录,但是要注意,如果有人显式地在目录或其中的任何文件上运行git add,你仍然会遇到问题。
对the man page的进一步研究似乎表明,--skip-worktree
更适合所询问的用例。
https://stackoverflow.com/questions/7399153
复制相似问题