繁体   English   中英

gitignore 不会忽略.idea 目录

[英]gitignore does not ignore .idea directory

使用 phpStorm IDE 处理 Symfony2 项目,我已将几个文件添加到 git 忽略,但一个文件尽管已添加到 git 中,但它总是出现多次。

.gitignore 文件:

/app/config/parameters.yml
/bin/
/build/
/composer.phar
/vendor/
/web/bundles/
/app/bootstrap.php.cache
/app/cache/*
!app/cache/.gitkeep
/app/config/parameters.yml
/app/logs/*
!app/logs/.gitkeep
/app/phpunit.xml

#IDE metadata
**.idea/**

#Bash files
run.sh

git 就是不会忽略的.idea 文件夹/文件:

On branch develop
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   .idea/workspace.xml

no changes added to commit (use "git add" and/or "git commit -a")

知道为什么 git 不会像我在 gitignore 中指定的那样忽略整个目录...?

Git永远不会忽略对跟踪文件的更改。 由于它看起来像已修改,因此文件受版本控制(通常不应该是idea / workspace.xml文件),因此会跟踪对它的更改。 从索引中删除它,使用git rm --cached .idea/workspace.xml保留本地副本并提交此更改。 从那时起,它将被忽略,除非您将其强制添加回存储库或更改您的gitignore设置。

提交文件后,将开始跟踪它
要从此处删除文件,您必须从存储库中删除它们。

您现在需要做的是删除整个.idea文件夹,提交删除,将idea扩展添加到.gitignore文件。

Note

您仍然可以使用assume-unchanged标志忽略添加的文件

--[no-]assume-unchanged

指定此标志时,不会更新为路径记录的对象名称。
相反,此选项设置/取消设置路径的“假定未更改”位。

assume unchanged位打开时,用户承诺不更改文件并允许Git假定工作树文件与索引中记录的文件匹配。

如果要更改工作树文件,则需要取消设置该位以告知Git。

如果需要在索引中修改此文件,例如在提交中合并时,Git将失败(优雅); 因此,如果上游更改了假定未跟踪文件,则需要手动处理该情况。


从命令行解释如何做也可以通过IDEA完成。

# Remove the file from the repository
git rm --cached .idea/

# now update your gitignore file to ignore this folder
echo '.idea' >> .gitignore

# add the .gitignore file
git add .gitignore

git commit -m "Removed .idea files"
git push origin <branch>

我在 gitignore 文件中添加了这个并为我工作

**/。主意

当我们提交一些东西时,git 开始跟踪文件夹/项目。 我们也可以从项目中删除不必要的文件。

从项目中删除.idea/文件夹。 请按照以下步骤操作:

  1. 确保您已将.idea/添加到.gitignore文件中。
  2. 运行以下命令

    git rm -r --cached .
    git add .
    git commit -m "untracked fixed"

希望它能解决问题。

#idea folder
.idea/

这对我来说很好

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM