我正在开展一个项目,它有一些不寻常的行为:
源代码中的一个文件是包含严格代码的文件,但它可以编辑自己以包含一些配置。这是一个好的设计是一个不同的讨论,但为了能够测试我的项目,这个文件需要处于修改状态。
在我做出任何承诺之前,我通常会在贡献之前和之后进行A-B比较。我使用git stash
在base和我的脏工作副本之间切换。问题是,当使用git stash
时,它还会恢复我的配置。
我当前的解决方法很麻烦:我执行git add path/to/settingsfile
然后git stash --keep-index
,但我不喜欢这种解决方法。有没有更优雅的解决方案让git忽略对该文件的所有修改,除非我另有说明?
答案 0 :(得分:1)
请参阅“Preserve git --assume-unchanged files between branch checkouts”
git update-index --skip-worktree -- path
不会从git stash
恢复。
原始答案
来自“temporarily ignoring files ”:
git update-index --assume-unchanged <file>
这样就可以忽略对特定文件的更改 如果您希望在保持配置更改的同时还原代码更改,这将无济于事。
git stash仍将还原它:How to prevent git stash dropping changes to files with the "assume unchanged" bit?