如何git忽略存储库中任何地方的ipython笔记本检查点

Posted

技术标签:

【中文标题】如何git忽略存储库中任何地方的ipython笔记本检查点【英文标题】:How to git ignore ipython notebook checkpoints anywhere in repository 【发布时间】:2016-06-25 07:22:44 【问题描述】:

这主要是一个 git 问题。我想提交我的 ipython 笔记本,但 gitignore 检查点。

repo 有多个文件夹,每个文件夹都有 ipython 笔记本,因此忽略一个目录并不能解决它。我想继续添加带有笔记本的新文件夹而不必担心。

我的直觉是,必须有一种方法可以使用通配符来gitignore 名为 */.ipynb_checkpoints/ 的文件夹中的任何内容,但无法弄清楚。

那么,我如何 git 忽略存储库中的所有 ipython notebook 检查点,无论它们在哪里?

【问题讨论】:

【参考方案1】:

如果你添加到.gitignore:

.ipynb_checkpoints

(任何地方都没有斜杠),repo 中具有该名称的任何文件或目录都将被忽略。仅当您包含 / 时才会检查路径。

来自this answer,您还可以为您的计算机设置一个全局 gitignore:

git config --global core.excludesfile '~/.gitignore'
echo '.ipynb_checkpoints' >> ~/.gitignore

【讨论】:

这似乎应该工作,但由于某种原因对我不起作用。在根存储库文件夹中,我的检查点位于notebooks/.ipynb_checkpoints/,我不能终生忽略它们!我尝试在我的 .gitignore 中添加带有和不带有斜杠的路径。我试过你的建议。我尝试添加很多星星。有什么想法吗? @Engineero 你告诉 git 你的.gitignore 文件和git config 在哪里? @Engineero:你已经提交了一些吗? .gitignore 事后不能忽略(如果它们已经提交) @CiprianTomoiaga 它找到我的.gitignore 就好了,其他文件和文件夹将被忽略。我不知道为什么这不起作用,但我发现了一些有用的东西。我将其添加为答案。 @Mr_and_Mrs_D 我也遇到了这个问题,但我只是取消了文件的索引并在.gitignore 中尝试了其他方法。我最终能够使用一些我将添加作为答案的东西来使它工作。【参考方案2】:

我建议在您的.gitignore 文件中使用**/*.ipynb_checkpoints/

【讨论】:

【参考方案3】:

添加到您的.gitignore

.ipynb_checkpoints
*/.ipynb_checkpoints/*

你应该很高兴。

【讨论】:

【参考方案4】:

如果你还没有推送你的代码,添加

.ipynb_checkpoints

到你的 .gitignore

如果您之前已经推送过代码,请添加 .ipynb_checkpoints 到您的 .gitignore。这将确保 .ipynb_checkpoints 将来会被忽略,但不会删除旧的 .ipynb_checkpoints

您必须手动删除相应分支中每个文件夹中的缓存。首先转到具有 .ipynb_checkpoints 的文件夹并执行

git rm -r --cached .ipynb_checkpoints

【讨论】:

我遇到了这个问题并查看了各种答案,但这一个为我解决了这个问题。事实上,我首先独立找到了解决方案,并且在检查时才看到这个。需要明确的是,如果您在 git status 中有持久文件,即使您将它们的文件夹包含在 .gitignore 中,请检查这些文件之前是否已提交。最简单的方法是使用上面的git rm 命令。 --cached 标志将确保您保留本地副本。 太好了,这对我很有帮助!【参考方案5】:

有时您可能会忘记您已经在 git 存储库中跟踪文件(就像我的情况一样)。所以你可能必须先取消跟踪它

git rm --cached Folder_with_ipynb/.ipynb_checkpoints/news-checkpoint.ipynb

然后添加到您的.gitignore 行:

*/.ipynb_checkpoints/*.ipynb

【讨论】:

【参考方案6】:

这行得通。

Folder/.ipynb_checkpoints/*.ipynb

【讨论】:

【参考方案7】:

出于某种原因,当前的答案都不适合我。通过添加以下内容,我最终能够让 git 忽略我的所有检查点文件(以及任何其他不需要的隐藏文件和文件夹):

.*  # ignore all hidden files and folders
!/.gitignore  # explicitly do not ignore .gitignore

到我的.gitignore repo 基目录中的文件。这是一个广泛的扫描,如果你想在你的仓库中保留隐藏文件,维护起来会很痛苦,但除了我的.gitignore,我不需要任何文件,所以它对我有用!

【讨论】:

是的,对我来说以上都不起作用。即使是你提出的。创建检查点时,它会显示在 git status 中。 @pebox11 对我来说也一样,没有检查点似乎是不可能的,但最后 Ashok Kumar 关于缓存文件的回答对我有帮助。【参考方案8】:

我使用了命令rm -rf .ipynb_checkpoints。这对我有用。

【讨论】:

即删除文件夹,而不是忽略。这是一个误导性的答案。

以上是关于如何git忽略存储库中任何地方的ipython笔记本检查点的主要内容,如果未能解决你的问题,请参考以下文章

如何在 git 存储库中重写提交者名称? [复制]

我如何告诉 Git 忽略除子目录之外的所有内容?

如何腌制或存储 Jupyter (IPython) 笔记本会话以供以后使用

IPython Notebook 多个检查点

如何使用 git 命令行区分两个未跟踪的文本文件 [重复]

如何忽略 Spring JPA findBy 存储库中的重音符号?