gitignore不会忽略.idea目录

nkoocmlb  于 2023-04-10  发布在  Git
关注(0)|答案(5)|浏览(160)

在使用PhpStorm IDE开发Symfony 2项目时,我已经在git ignore中添加了几个文件,但有一个文件尽管添加到了git ignore中,但总是出现。
.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中指定的那样忽略整个目录吗?

mhd8tkvw

mhd8tkvw1#

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

eufgjt7s

eufgjt7s2#

一旦你提交了文件,它将开始被跟踪
为了从这一点删除文件,您必须从存储库中删除它们。
你现在需要做的是删除整个.idea文件夹,提交删除,将idea扩展名添加到你的.gitignore文件。

Note

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

--[no-]assume-unchanged

指定此标志时,不会更新为路径记录的对象名称。
相反,该选项设置/取消设置路径的“假定未改变”位。
assume unchanged位为on时,用户承诺不更改文件,并允许Git假设工作树文件与索引中记录的内容匹配。
如果你想改变工作树文件,你需要取消设置位来告诉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>
pdsfdshx

pdsfdshx3#

#idea folder
.idea/

这对我来说很好

eqqqjvef

eqqqjvef4#

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

**/.idea

wgeznvg7

wgeznvg75#

当我们提交一些东西时,git会开始跟踪文件夹/项目。不必要的文件我们也可以从项目中删除。
从项目中删除.idea/文件夹。请按照以下步骤操作:
1.确保您已将.idea/添加到.gitignore文件中。
1.运行以下命令

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

希望它能解决这个问题。

相关问题