我意外地跟踪了由rubymine创建的.idea/workspace.xml
文件,现在我似乎无法删除该文件被跟踪。
由于这个原因,我已多次检查过,但我真的希望它停止被跟踪,因为它会导致合并冲突。
以下是我一直试图删除文件的方法。
git rm --cached .idea/workspace.xml
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: .idea/workspace.xml
git commit -m 'remove workspace file from tracking'
.idea/*
答案 0 :(得分:0)
你所展示的应该可以正常工作。我看到文件可能被重复引入的两种可能方式:
如果其他人仍然遇到合并错误,并通过添加更改并忽略删除来解决它们,则文件将继续回来
如果您未将.gitignore
包含在您的回购邮件中或未将.ideas/*
添加到.gitignore,则其他人可能会通过以下内容重新添加该文件/ p>
git add -a
或
git add .
您应该将更改提交到.gitignore以防止这种情况发生。
答案 1 :(得分:0)
对我来说,问题是由使用GitHub Windows GUI工具引起的。
即使我手动删除了.gitignore中的.idea /文件夹并执行了git rm -r --cached .idea
,它也会继续回到“未同步的更改”中。
我可以在删除缓存文件夹并添加到.gitignore之后通过通过命令行手动提交来解决此问题。不知道为什么但它有效。
git commit -m "Manual commit"
答案 2 :(得分:0)
提交文件后,有两种方法可以告诉git忽略它:
提交删除文件,然后将其添加到.gitignore
git rm --cached git commit -m“已删除......”
设置assume-unchanged
标志
--[no-]assume-unchanged
强> 指定此标志时,不会更新为路径记录的对象名称 相反,此选项设置/取消设置路径的“假设未更改”位。
当“假定未更改”位打开时,用户承诺不更改文件并允许Git假定工作树文件与索引中记录的文件匹配。如果要更改工作树文件,则需要取消设置该位以告知Git。当在具有非常慢的lstat(2)系统调用(例如cifs)的文件系统上处理大项目时,这有时很有用。
如果需要在索引中修改此文件,Git将失败(优雅地),例如合并时提交;因此,如果上游更改了假定未跟踪文件,则需要手动处理该情况。