防止Git更改被忽略的文件而不删除相同的文件

时间:2018-06-07 16:58:43

标签: git version-control

.gitignore文件成功忽略所有web.config文件。情况并非总是如此。有一些对web.config文件的遗留历史引用。现在偶尔会将web.config文件还原,而不会发出警告以前的状态。当开发人员进行更改以恢复web.config文件时,没有按预期记录差异。

什么解释了恢复到以前版本的无法解释的行为以及如何停止?我宁愿不改变存储库的整个历史记录,但这是允许的。

- 编辑 - 我找到了部分solution。唯一的问题是它将我的历史记录更改为包含web.config文件,然后删除它们。我现在认为正确的做法是甚至在服务器上覆盖历史记录,方法是从一开始就删除对配置文件的所有引用。

2 个答案:

答案 0 :(得分:1)

可能你签出了一个包含该文件的旧提交。在df[order(sapply(df$test, max), decreasing=TRUE), ] # type value test # 8 protein 1000.0 20, 1 # 1 rna 1.0 0, 12 # 7 protein 300.0 7 # 6 protein -9.6 6 # 5 dna 30.0 5 # 4 dna 20.0 4 # 3 rna 3.0 3 # 2 rna 2.0 2 期间直接或间接使用git checkout

答案 1 :(得分:1)

要从所有提交历史记录中删除web.config文件,您可以执行以下命令:

touch .gitignore
echo 'web.config' > .gitginore
git rm --cached web.config
git add .gitignore
git commit -m 'add .gitignore to ignore web.config'
git filter-branch --index-filter 'git rm --ignore-unmatch --cached -r web.config' --prune-empty -f -- --all

重写历史可能需要几分钟的时间。之后,{g}提交历史记录中完全删除了web.config文件。