Git-完全忽略文件

Git-完全忽略文件,git,Git,我的组织中有人提交了.idea文件。我知道正确的答案是删除这些,但我必须解决它,因为删除它会影响其他开发人员的工作流程,即使我不同意,我现在也不能从git中删除它 我知道我可以隐藏和弹出,并且做了一段时间,但不断提交来自.idea on contract的文件,我只是厌倦了不得不修改我的提交 所以我试图让git完全忽略这个文件夹中的文件,特别是.idea/modules.xml 我尝试了以下方法: git update-index --assume-unchanged .idea/modules

我的组织中有人提交了.idea文件。我知道正确的答案是删除这些,但我必须解决它,因为删除它会影响其他开发人员的工作流程,即使我不同意,我现在也不能从git中删除它

我知道我可以隐藏和弹出,并且做了一段时间,但不断提交来自.idea on contract的文件,我只是厌倦了不得不修改我的提交

所以我试图让git完全忽略这个文件夹中的文件,特别是
.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明确表示这不是一个选项。