【问题标题】:Adding new entries to .gitignore doesn't work向 .gitignore 添加新条目不起作用
【发布时间】:2018-01-31 06:28:39
【问题描述】:

如果我理解正确,为了“忽略”一个文件,这样当我输入 git statusgit add -A 时它就不会出现,我需要将它添加到 .gitignore 文件中。

我的目标是在将更改提交到 Git 时永久忽略某个文件夹和文件。

我尝试在编辑器中编辑 .gitignore 文件:

config/
src/package.xml

我保存了文件,提交并推送到 Git,从另一个存储库刷新了我的项目,输入了 git status,仍然看到了 xml 文件和文件夹。

还尝试通过选择“放弃更改”来使用 GItHub Desktop,它会自动将以下行添加到 .gitignore:

*.sublime-workspace
config/.local_store
*.sublime-workspace
src/package.xml

但结果相同...

项目结构:

          Full
    ________|____________
   |        |            |
config  .gitignore      src
   |                     |
  ...                package.xml

【问题讨论】:

标签: git


【解决方案1】:

.gitignore 不追溯适用。 git add 仅在第一次将文件添加到存储库时才读取它。

如果文件已经在 repo 中,仅在 gitignore 中列出它是不够的。您还需要将其从 repo 中删除 (git rm --cached src/package.xml)。

不要忘记git add .gitignoregit commit,以保持更改。

【讨论】:

  • 谢谢!我不知道我必须从 Git 中删除文件夹/文件才能忽略它们。只有一件事,我必须将 -r 添加到删除命令中: git rm -r --cached src/package.xml
  • .gitignore 的文档的第一段中解释了:“一个gitignore 文件指定了Git 应该忽略的故意未跟踪的文件。Git 已经跟踪的文件不受影响。 "。也可以在您的计算机上使用git help gitignore
【解决方案2】:

如果您的 XML 文件已经被跟踪并且您想保留它,您可以使用post 中描述的命令忽略新的修改。否则,您将不得不按照 cmets 中的说明将其删除。

请注意,.gitignore 的替代方法是使用 .git/info/exclude

【讨论】:

    猜你喜欢
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 2019-10-29
    相关资源
    最近更新 更多