如何为 15.5GB 机器学习项目创建和填充 gitignore 文件? [重复]

问题描述 投票:0回答:2

我正在做一个关于 ML 的大学项目,该项目相当大,我通常不使用 github,但我需要格式化我的电脑,并且不信任我拥有的 Google Drive 备份,因此我想要第二个一个这样我就不会丢失任何代码。

我在 GitHub 桌面上使用 Git,我对 Git 不太了解,所以我很难上传这个项目,因为每次我尝试上传它时它都会断开连接,我很确定这是因为尺寸,有什么帮助吗?

我使用的IDE是PyCharm,Python版本是3.7,我已经创建了requirements.txt。

我尝试搜索预先制作的 git 忽略文件,但没有成功。

python git github pycharm github-desktop
2个回答
0
投票

.gitignore 文件不会为您提供帮助 - 您需要从项目历史记录中删除依赖项。有两种方法可以做到这一点:

传统方式涉及git-filter-branch。我过去曾经这样做过一次。它有效,但很容易出错。

替代方法是使用BFG。我没有个人经验,但它似乎更容易使用,并且声称更快。所以如果我是你,我会尝试一下 BFG。

无论您尝试哪种方式,请进行本地备份!

完成重写历史记录后,您可以使用 .gitignore 来防止自己重新添加不需要的文件。


0
投票

正如您自己已经感觉到的那样,Git 并不是真正适合处理像您所说的那样大的数据量(15.5GB)。您现在要做的最重要的事情是确定要跟踪哪些文件,以及哪些文件只是不需要版本控制的“二进制文件”。为此,您无需使用大脑以外的任何其他工具(但使用任何类型的文件浏览器环顾四周都会教您很多东西)。

决定保留什么

这里必须非常严厉。作为一般方法(可能有例外),请尝试排除以下文件:

  • 任何大于 1MB 的文件。肯定会有例外,但总的来说这是一个很好的经验法则。
  • 任何基于二进制/非文本的内容。 Git 被设计用来处理文件的差异,这对于非文本文件来说不是用户友好的。示例:图像、视频、幻灯片...
  • 由代码生成的任何内容(例如编译结果或数据处理......)
  • 您使用的工具生成的任何内容(例如 IDE 创建的文件夹)
  • 任何数据文件。 Git 并不是真正为数据版本控制而设计的。您真正想要进行版本控制的是您的代码。

创建 git 存储库

看起来你已经创建了一个 git 存储库,但除非你有非常重要的历史记录,否则我建议你从现在的位置重新开始。如果是为了一个大学项目,我可以想象你到目前为止失去你的历史也很好。如果丢失历史记录对您来说不好,则必须更改历史记录并从存储库中删除大文件(我不会向新的 Git 用户推荐这种危险的操作。更多信息可以在这篇SO 帖子中找到) ).

我建议启动一个新的存储库,因为我觉得你会通过这种方式学到更多东西,但如果你想改变你的历史记录,那就继续吧!

要启动新的存储库,请转到项目的根目录并将

.git
文件夹复制到某个位置作为备份。这通常是一个隐藏文件夹,它包含您的所有历史记录!

然后,删除此

.git
文件夹(确保您已将备份
.git
文件夹保存在某处)。

之后,执行

git init
命令。您有一个新的 git 存储库可以使用!输入
git status
将显示一堆未跟踪的文件。

填充你的 gitignore

我们现在要做的第一件事是在提交任何其他内容之前创建 .gitignore 文件。假设您在第一步中决定忽略以下内容:

  • 所有 *.xlsx 文件
  • build/ 目录中的所有内容
  • 所有 *.log 文件

在这种情况下,您应该创建一个名为

.gitignore
的文本文件(使用任何文本编辑器:您的 IDE 或记事本或任何东西)。使用您选择的文本编辑器打开它并在其中添加以下文本:

*.xlsx
build/*
*.log

现在保存文件。您已经创建了 .gitignore 文件!现在添加并提交文件(使用良好的提交消息)并输入

git status
。您应该不会看到任何不需要的文件出现!现在您可以提交所有其余文件(正确检查
git status
以查看 git 在提交之前没有跟踪不需要的文件!)并且您拥有一个干净的轻量级存储库。

维护你的 gitignore

项目过程中gitignore文件发生演变是正常的。如果新的文件类型/文件夹进入存储库中实际上不需要的项目,请毫不犹豫地在其中添加新行。

© www.soinside.com 2019 - 2024. All rights reserved.