git add 有什么作用?
What does git add do?
我用 git init
初始化了一个文件夹。
其中内容的大小约为 600MB。做了git add
后,.git
的大小变成了600MB,那么,它真的存储了我文件的所有内容吗?我以为 git add
只是将文件视为要跟踪的文件,但如果是这样,大小应该不会那么大,对吧?
纠正我,如果我错了。
如果是,您能否建议一些更简单的方法来在本地跟踪我的更改?
更新:即使git gc
,大小也没有太大变化
实际上,我的要求是,我正在存储视频、文本文件、Pdf 文件等……而且我一直在更改它们,所以,有时我想回去。
由于视频量大,越来越臃肿
我觉得除了git
别无选择。谢谢大家
.git
文件夹跟踪被跟踪文件的所有版本。 git add
将标记更改(通过将它们复制到临时区域),然后 git commit
将它们记录在存储库中。是的,它确实存储了您文件的所有内容;不仅如此,还有所有 版本 的内容。否则它就不是一个版本跟踪器 - 如果不在单独的位置记录内容,我能想到的返回到文件的早期版本的唯一方法是 time-travel 机器,并且 git
还没有实现。 :)
也就是说,git
是为了跟踪 源文件 而开发的,您拥有 600MB 的源文件的可能性很小。您应该避免添加数据文件,或者是您的代码或编译过程的产物的文件(以及,出于不同的原因,任何可能因开发人员而异的配置文件)。为了解决这个问题,你应该在存储库中做的第一件事就是制作一个 .gitignore
文件,并检查 git status
是否有任何你不想提交的文件被 git
.
git add
都将文件标记为已跟踪,并将其复制到暂存区。在提交之前复制到暂存区允许一个人构建一个提交片段,对于 git add -p
和 git add -i
.
特别有用
您可以使用 git add --intent-to-add
仅跟踪文件,但最终您需要添加并提交它。
好消息是 Git 将压缩这些文件,因此在提交它们之后 运行 git gc
它们应该小得多,假设它们是可压缩的。
如果您提交对大文件的更改,尤其是大二进制文件,您的存储库将变得非常大。而是使用 Git Large File Storage 将大文件的历史存储在云端。
git add
命令将工作目录中的更改添加到暂存区。它告诉 Git 你想在下一次提交中包含对特定文件的更新。但是,git add
并没有真正以任何显着方式影响存储库 — 直到您 运行 git 提交之前,更改不会被实际记录。
您可以使用 .gitignore 文件来删除我们可以生成或下载的不需要的文件
例如:dll,node_modules.
此 link 向您展示了如何将 .gitignore
文件添加到您的存储库
我用 git init
初始化了一个文件夹。
其中内容的大小约为 600MB。做了git add
后,.git
的大小变成了600MB,那么,它真的存储了我文件的所有内容吗?我以为 git add
只是将文件视为要跟踪的文件,但如果是这样,大小应该不会那么大,对吧?
纠正我,如果我错了。
如果是,您能否建议一些更简单的方法来在本地跟踪我的更改?
更新:即使git gc
,大小也没有太大变化
实际上,我的要求是,我正在存储视频、文本文件、Pdf 文件等……而且我一直在更改它们,所以,有时我想回去。
由于视频量大,越来越臃肿
我觉得除了git
别无选择。谢谢大家
.git
文件夹跟踪被跟踪文件的所有版本。 git add
将标记更改(通过将它们复制到临时区域),然后 git commit
将它们记录在存储库中。是的,它确实存储了您文件的所有内容;不仅如此,还有所有 版本 的内容。否则它就不是一个版本跟踪器 - 如果不在单独的位置记录内容,我能想到的返回到文件的早期版本的唯一方法是 time-travel 机器,并且 git
还没有实现。 :)
也就是说,git
是为了跟踪 源文件 而开发的,您拥有 600MB 的源文件的可能性很小。您应该避免添加数据文件,或者是您的代码或编译过程的产物的文件(以及,出于不同的原因,任何可能因开发人员而异的配置文件)。为了解决这个问题,你应该在存储库中做的第一件事就是制作一个 .gitignore
文件,并检查 git status
是否有任何你不想提交的文件被 git
.
git add
都将文件标记为已跟踪,并将其复制到暂存区。在提交之前复制到暂存区允许一个人构建一个提交片段,对于 git add -p
和 git add -i
.
您可以使用 git add --intent-to-add
仅跟踪文件,但最终您需要添加并提交它。
好消息是 Git 将压缩这些文件,因此在提交它们之后 运行 git gc
它们应该小得多,假设它们是可压缩的。
如果您提交对大文件的更改,尤其是大二进制文件,您的存储库将变得非常大。而是使用 Git Large File Storage 将大文件的历史存储在云端。
git add
命令将工作目录中的更改添加到暂存区。它告诉 Git 你想在下一次提交中包含对特定文件的更新。但是,git add
并没有真正以任何显着方式影响存储库 — 直到您 运行 git 提交之前,更改不会被实际记录。
您可以使用 .gitignore 文件来删除我们可以生成或下载的不需要的文件 例如:dll,node_modules.
此 link 向您展示了如何将 .gitignore
文件添加到您的存储库