我有一些部分生成的文件foo,我希望以初始状态签入到存储库中,但是我不希望git注意到任何更改。
我想过把它的.gitignore文件git add -f foo就足够了,但git status和git diff显示的变化FOO以及git add .添加。反正我能做到这一点吗?
就像git update-index --assume-unchanged foo 但自动为所有人提供的功能,而不仅仅是在本地。
事后编辑:有类似问题的处理到这一阵子之后,
--skip-worktree最好--assume-unchanged,看到这一问题的原因。神奇地使其适用于所有人的问题仍然存在。
要成为一个更具体一点它的一些文件,它跟踪的内存数据库单元测试需要的线条CREATE USER SA PASSWORD ""和GRANT DBA TO SA,如果我删除这个文件时,它就会重新生成这些行不存在。它跟踪两次运行之间的数据库状态,这就是为什么我不希望将其更改检查到存储库中的原因。
我知道这是一个奇怪的情况,弄清楚如何用这些行生成或不跟踪状态可能是一个更好的解决方案。
mkdir test
cd test
git init
echo "hey" > foo
git add .
git commit -m "Add hey to foo"
echo "foo" > .gitignore
git add .
git commit -m "Ignore foo"
echo "bye" > foo
git diff # will show foo's change
git status # will show foo has changed
git add . # will add foo's change to index
Run Code Online (Sandbox Code Playgroud)
这有点像 hack,但它是一个可行的仅 git 解决方案。
.gitmodules在主存储库中进行修改。ignore=dirty所以现在,当修改此文件时,子模块将被标记为脏,但使用存储库的人在检查时不会看到标记为脏的子模块git status。更重要的是,他们可以随意拉动和推送,而无需共享对子模块中的文件所做的更改。
| 归档时间: |
|
| 查看次数: |
497 次 |
| 最近记录: |