强制git不修改工作树中的文件

时间:2012-03-02 20:00:29

标签: git

我有以下情况:

我正在开展一个合作项目,我们正在使用github。有一个名为user_info.csv的文件正在被跟踪。有些人提出修改它的提交。

为了进行测试,我想在其中列出我自己的用户,即使提交指示它应该也没有git更新它。例如,如果我查看较旧的提交或执行提取,则应修改我的工作树中跟踪的所有文件,user_info.csv除外。

即使拔出/切换分支,我怎么能让git不修改user_info.csv,并且在任何时候都将它从索引中删除?

我试过了:

  • .gitignore
  • $GIT_DIR/info/exclude
  • git update-index --assume-unchanged

2 个答案:

答案 0 :(得分:2)

问问自己文件是否实际属于版本控制?

如果每个人都在更改文件以供个人使用,那么该文件应转换为 跟踪的模板(例如user_info.template),并且所有协作者都可以创建自己的{ {1}}或user_info.csv中的{1}}。

但是,如果文件对程序至关重要,并且每个人需要,那么您应该考虑如何以不同方式执行此操作:

  1. 创建一个新文件,并将其副本保存在项目之外,并在每次拉动中复制它。
  2. 有一个单独的文件包含您的更改,并修改您的测试文件以使用该文件
  3. 为完全不包含文件的测试创建灯具(当然,这取决于您的测试环境)
  4. 运行测试时,使用脚本创建新文件,并在完成测试后将其删除。

答案 1 :(得分:0)

只要Git跟踪该文件,它将始终应用来自其他分支的更改,因为就是它所做的。跟踪内容,你知道。 :)

要么删除文件(小心,这会将它从其他人的存储库中移除,一旦他们从你那里获取特定的提交),或者只是将其移走,更新,然后再将其移回。