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

强制git不修改我的工作树中的文件,git,Git,我有以下情况: 我正在进行一个协作项目,我们正在使用github。有一个名为user_info.csv的文件正在跟踪。有一些提交是由修改它的各种人推动的 对于测试,我想在其中列出我自己的用户,即使提交表明应该更新,也不让git更新它。例如,如果我签出较旧的提交或执行拉取,则应修改工作树中跟踪的所有文件,但user\u info.csv除外 我怎样才能让git即使在拉/切换分支时也不修改user_info.csv,并且始终将其保留在索引之外 我试过: .gitignore $GIT\u DIR/

我有以下情况:

我正在进行一个协作项目,我们正在使用github。有一个名为
user_info.csv
的文件正在跟踪。有一些提交是由修改它的各种人推动的

对于测试,我想在其中列出我自己的用户,即使提交表明应该更新,也不让git更新它。例如,如果我签出较旧的提交或执行拉取,则应修改工作树中跟踪的所有文件,但
user\u info.csv
除外

我怎样才能让git即使在拉/切换分支时也不修改
user_info.csv
,并且始终将其保留在索引之外

我试过:

  • .gitignore
  • $GIT\u DIR/info/exclude
  • git更新索引--假定未更改

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


要么取消对文件的跟踪(小心,一旦其他人从您那里获取特定的提交,这也会将其从其他人的存储库中删除),要么将其移走、更新,然后再次移回。

问问自己,该文件是否真的属于版本控制

如果每个人都在为自己的个人用途更改文件,则应将文件转换为跟踪的模板(例如
用户信息.template
),所有合作者都可以创建自己的
用户信息.csv
,该模板位于
排除
忽略

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

  • 创建一个新文件,在项目外部保留一个副本,并在每次拉取时复制它
  • 使用单独的文件保存更改,并修改测试文件以使用该文件
  • 为您的测试创建一个完全不包含文件的装置(当然取决于您的测试环境)
  • 运行测试时,使用脚本创建新文件,并在完成测试后将其删除
    如何仅为我取消跟踪该文件?从本地分支取消跟踪(即删除)该文件,但每次从其他人获取更新时,您都可能会遇到冲突。