File tree Expand file tree Collapse file tree 1 file changed +5
-5
lines changed
book/10-git-internals/sections Expand file tree Collapse file tree 1 file changed +5
-5
lines changed Original file line number Diff line number Diff line change 8
8
9
9
Git 会不定时的自动运行一个叫做 ``auto gc'' 的命令。
10
10
大多数时候,这个命令并不会产生效果。
11
- 然而,如果有太多松散对象(不在包文件中的对象)或者太多包文件,Git 运行一个完整的 `git gc` 命令。
11
+ 然而,如果有太多松散对象(不在包文件中的对象)或者太多包文件,Git 会运行一个完整的 `git gc` 命令。
12
12
``gc'' 代表垃圾回收,这个命令会做以下事情:收集所有松散对象并将它们放置到包文件中,将多个包文件合并为一个大的包文件,移除与任何提交都不相关的陈旧对象。
13
13
14
14
可以像下面一样手动执行自动垃圾回收:
@@ -35,7 +35,7 @@ $ find .git/refs -type f
35
35
----
36
36
37
37
如果你执行了 `git gc` 命令,`refs` 目录中将不会再有这些文件。
38
- Git 会为了保证效率而将它们移动到名为 `.git/packed-refs` 的文件中,就像这样:
38
+ 为了保证效率 Git 会将它们移动到名为 `.git/packed-refs` 的文件中,就像这样:
39
39
40
40
[source,console]
41
41
----
@@ -174,9 +174,9 @@ dangling blob 7108f7ecb345ee9d0084193f147cdad4d2998293
174
174
[[_removing_objects]]
175
175
==== 移除对象
176
176
177
- Git 有很多很棒的功能,但是一个特性会导致问题 ,`git clone` 会下载整个项目的历史,包括每一个文件的每一个版本。
177
+ Git 有很多很棒的功能,但是其中一个特性会导致问题 ,`git clone` 会下载整个项目的历史,包括每一个文件的每一个版本。
178
178
如果所有的东西都是源代码那么这很好,因为 Git 被高度优化来有效地存储这种数据。
179
- 然而,如果某个人在之前向项目添加了一个大小特别大的文件,那么每次克隆都要强制的下载这个大文件, 即使你将这个文件从项目中移除了。
179
+ 然而,如果某个人在之前向项目添加了一个大小特别大的文件,即使你将这个文件从项目中移除了,每次克隆还是都要强制的下载这个大文件 。
180
180
之所以会产生这个问题,是因为这个文件在历史中是存在的,它会永远在那里。
181
181
182
182
当你迁移 Subversion 或 Perforce 仓库到 Git 的时候,这会是一个严重的问题。
@@ -187,7 +187,7 @@ Git 有很多很棒的功能,但是一个特性会导致问题,`git clone`
187
187
它会从你必须修改或移除一个大文件引用最早的树对象开始重写每一次提交。
188
188
如果你在导入仓库后,在任何人开始基于这些提交工作前执行这个操作,那么将不会有任何问题 - 否则,你必须通知所有的贡献者他们需要将他们的成果变基到你的新提交上。
189
189
190
- 为了演示,我们将添加一个大文件到测试仓库中,并在下一次提交中删除它,现在我们需要找到它,并将它永久的从仓库中删除 。
190
+ 为了演示,我们将添加一个大文件到测试仓库中,并在下一次提交中删除它,现在我们需要找到它,并将它从仓库中永久删除 。
191
191
首先,添加一个大文件到仓库中:
192
192
193
193
[source,console]
You can’t perform that action at this time.
0 commit comments