Git-完全忽略文件
我的组织中有人提交了.idea文件。我知道正确的答案是删除这些,但我必须解决它,因为删除它会影响其他开发人员的工作流程,即使我不同意,我现在也不能从git中删除它 我知道我可以隐藏和弹出,并且做了一段时间,但不断提交来自.idea on contract的文件,我只是厌倦了不得不修改我的提交 所以我试图让git完全忽略这个文件夹中的文件,特别是Git-完全忽略文件,git,Git,我的组织中有人提交了.idea文件。我知道正确的答案是删除这些,但我必须解决它,因为删除它会影响其他开发人员的工作流程,即使我不同意,我现在也不能从git中删除它 我知道我可以隐藏和弹出,并且做了一段时间,但不断提交来自.idea on contract的文件,我只是厌倦了不得不修改我的提交 所以我试图让git完全忽略这个文件夹中的文件,特别是.idea/modules.xml 我尝试了以下方法: git update-index --assume-unchanged .idea/modules
.idea/modules.xml
我尝试了以下方法:
git update-index --assume-unchanged .idea/modules.xml
git update-index --skip-worktree .idea/modules.xml
这让体验稍微好一点,文件不再显示在git状态上,我可以使用git commit-am
,而不会意外地将更改提交到idea文件
然而,当我尝试拉的时候,我仍然得到一个错误
git pull origin --rebase
error: Your local changes to the following files would be overwritten by checkout:
.idea/modules.xml
我觉得很奇怪,因为如果我尝试签出它,git甚至找不到该文件:
git checkout .idea/modules.xml
error: pathspec '.idea/modules.xml' did not match any file(s) known to git.
我使用的是自制的最新版本的git
git --version
git version 2.13.3
这是Git中的bug吗?是否有其他配置选项可用于完全忽略此文件
我知道正确的答案是移除这些,但我必须解决它
您无需解决此问题:记录其删除:
git rm --cached -r .idea/
echo ".idea/" >> .gitignore
git add .
git commit -m "remove .idea/ folder"
git push
从那时起,您的repo中不再有.idea
文件夹
删除文件夹不是一个选项。它用于开发人员的工作流程,目前无论我多么不同意,它都必须留在那里 然后将其重命名为:
git mv .idea .idea_settings
echo ".idea/" >> .gitignore
git add .
git commit -m "rename .idea/ folder"
git push
- 任何想要使用这些设置的用户都可以对其进行符号链接
ln -s .idea .idea_symlink
- 任何不想使用它的用户都将保留一个未经跟踪的私人
.idea
git rm --cached -r .idea/
echo ".idea/" >> .gitignore
git add .
git commit -m "remove .idea/ folder"
git push
从那时起,您的repo中不再有.idea
文件夹
删除文件夹不是一个选项。它用于开发人员的工作流程,目前无论我多么不同意,它都必须留在那里 然后将其重命名为:
git mv .idea .idea_settings
echo ".idea/" >> .gitignore
git add .
git commit -m "rename .idea/ folder"
git push
- 任何想要使用这些设置的用户都可以对其进行符号链接
ln -s .idea .idea_symlink
- 任何不想使用它的用户都将保留一个未经跟踪的私人
.idea
- 我会重写项目的历史,丢弃它们。。。但那只是我。我不想那些不属于这个项目的东西出现在那里。。。特别是如果做起来相对容易的话。我会重写项目的历史,丢弃它们。。。但那只是我。我不想那些不属于这个项目的东西出现在那里。。。特别是在相对容易的情况下。要完全停止跟踪文件,需要将其从索引中删除。这可以通过这个命令来完成
git rm --cached <file>
git-rm——缓存
将在下次提交时从头部修订中删除文件。要完全停止跟踪文件,需要将其从索引中删除。这可以通过这个命令来完成
git rm --cached <file>
git-rm——缓存
将在下次提交时从头部修订中删除文件。
.gitignore
?或者你已经考虑过了吗?你能告诉你的想法,把它的文件写进一个不同的目录,这样你就永远不会修改那些在Git?<代码>。GiTigGNOR/<代码>不会帮助已经提交和跟踪的文件。它只是阻止您添加它们。.gitignore
?或者你已经考虑过了吗?你能告诉你的想法,把它的文件写进一个不同的目录,这样你就永远不会修改那些在Git?<代码>。GiTigGNOR/<代码>不会帮助已经提交和跟踪的文件。它只是阻止您添加它们。删除文件夹不是一个选项。它用于开发人员的工作流程,目前无论我多么不同意,它都必须留在那里。这就是为什么我说我现在必须解决这个问题。@AlexSpence我已经编辑了答案以回应您的评论。@AlexSpence我的备选方案可能会有帮助吗?删除文件夹不是一个选项。它用于开发人员的工作流程,目前无论我多么不同意,它都必须留在那里。这就是为什么我说我现在必须解决这个问题。@AlexSpence我编辑了答案以回应您的评论。@AlexSpence我的替代方案有没有可能有所帮助?这就是我在自己的答案中所说的:-1。此外,OP明确表示这不是一个选项。这就是我在自己的回答中所说的:-1。此外,OP明确表示这不是一个选项。