我在Rails项目中使用Rubymine。通常情况下,Rubymine在.idea/*文件中做了一些我并不关心的更改。但它一直阻止我查看新的分支,并使我的.idea版本与我的同事不同。

我们已经向.gitignore添加了.idea/,但它会跟踪.idea中的变化。我该怎么做才对呢?

下面是我得到的一个典型的错误消息:

error: Your local changes to the following files would be overwritten by checkout:
    .idea/workspace.xml

当前回答

.gitignore,该文件用于显式指定Git应该忽略哪些文件或文件夹

在$HOME/中指定的忽略规则。gitignore_global、$ HOME /。config/git/ignore, $GIT_DIR/info/exclude, .gitignore在git存储库中都有效

.gitignore文件显式指定了哪些文件不应该被Git跟踪,即被Git忽略。在gitignore之前已经被Git跟踪的文件不受gitignore规则的影响。要停止跟踪Git已经跟踪的文件,请使用Git rm——cached .idea/命令

其他回答

.gitignore,该文件用于显式指定Git应该忽略哪些文件或文件夹

在$HOME/中指定的忽略规则。gitignore_global、$ HOME /。config/git/ignore, $GIT_DIR/info/exclude, .gitignore在git存储库中都有效

.gitignore文件显式指定了哪些文件不应该被Git跟踪,即被Git忽略。在gitignore之前已经被Git跟踪的文件不受gitignore规则的影响。要停止跟踪Git已经跟踪的文件,请使用Git rm——cached .idea/命令

在rubymine gui中,有一个忽略列表(设置/版本控制)。也许可以试着在那里禁用它。我从他们的后勤人员那里得到了暗示。

在你的终端试试git rm -r——cached .idea。它禁用更改跟踪。

我建议阅读git手册页,以充分理解忽略是如何工作的,将来你会感谢我的;)

与你的问题相关的:

Two consecutive asterisks ("**") in patterns matched against full pathname may have special meaning:

A leading "**" followed by a slash means match in all directories. For example, "**/foo" matches file or directory "foo" anywhere, the same     as pattern "foo". "**/foo/bar" matches file or directory "bar" anywhere that is directly under directory "foo".

A trailing "/**" matches everything inside. For example, "abc/**" matches all files inside directory "abc", relative to the location of the .    gitignore file, with infinite depth.

A slash followed by two consecutive asterisks then a slash matches zero or more directories. For example, "a/**/b" matches "a/b", "a/x/b",     "a/x/y/b" and so on.

Other consecutive asterisks are considered invalid.

关闭PHP Storm 在终端转到项目文件夹 类型

git rm -rf .idea; git commit -m "delete .idea"; git push;

然后进入项目文件夹,删除文件夹。idea

sudo rm -r .idea/

启动PhpStorm,你就完成了