导致 git gc --auto 的所有命令列表
是否有导致 git gc --auto 运行的明确命令列表? git-gc(1) 手册页简单地指出:
--自动
使用此选项,git gc 检查是否需要任何内务处理;如果不是,则退出而不执行任何工作。 某些 git 命令在执行可能创建许多松散对象的操作后运行
git gc --auto
。
(强调)
我正在组织从 SVN 到 Git 的大型迁移。绝大多数用户将使用 Windows PC,其中相当一部分是非技术用户。他们将使用 TortoiseGit(因为它与他们已经熟悉的 TortoiseSVN 非常匹配) - 我注意到 TortoiseGit 根本不包含任何手动运行 git gc 的功能。
不能指望非技术人员必须启动“git bash”命令行才能从适当的工作目录运行 git gc --auto ;由于我们使用的是 MsysGit 的“便携式”发行版,因此它们不会有“Git GUI Here..”Windows shell 上下文菜单快捷方式。
预计随着时间的推移,Git 将主要进行自我维护是否合理,或者我是否需要尝试找出一种非技术用户友好的方法来调用 git gc --auto ?
Is there a definitive list of commands anywhere that cause git gc --auto
to run? The git-gc(1) man page simply states:
--auto
With this option, git gc checks whether any housekeeping is required; if not, it exits without performing any work. Some git commands run
git gc --auto
after performing operations that could create many loose objects.
(emphasis added)
I'm in the process of organising a large migration from SVN to Git. The overwhelming majority of users will be on Windows PCs, and a not-insignificant portion of them are non-technical. They will be using TortoiseGit (as it closely matches TortoiseSVN, which they are already familiar with) - I've noticed that TortoiseGit does not include any functionality to run git gc
manually at all.
The non-technical staff cannot be expected to have to launch a "git bash" command line to run git gc --auto
from the appropriate working dir; and as we are using the "portable" distribution of MsysGit they will not have the "Git GUI Here.." windows shell context menu shortcut.
Is it reasonable to expect that over time Git will mostly self-maintain, or do I need to try and work out a non-technical user friendly method of invoking git gc --auto
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
从 git.git 上的 git grep -- --auto 来看,这些结果看起来很有趣。值得注意的是
builtin/merge.c
,这意味着如此常见的git pull
应该触发git gc --auto
。此外,除非你的“非技术”员工正在做相当“高级”的事情(此时他们将不再是“非技术”),我不明白为什么他们需要运行 git手动 gc 而不是仅仅让 git gc --auto 处理所有事情。
From
git grep -- --auto
on git.git, those results looked interesting. The notable one isbuiltin/merge.c
meaning that the ever so commongit pull
should trigger agit gc --auto
.Additionally, unless your 'non-technical' staff is doing rather 'advanced' stuff (at which point they wouldn't be 'non-technical' anymore), I don't see why they would ever need to run
git gc
manually instead of just lettinggit gc --auto
handle everything.使用 Git 2.17(2018 年第 2 季度),您必须将
git commit
添加到触发git gc --auto
的命令列表中。事实上,从 Git 诞生之初就应该如此。
请参阅 提交 095c741(2018 年 2 月 28 日),作者:Ævar Arnfjörð Bjarmason (
avar
)。(由 Junio C Hamano --
gitster
-- 合并于 提交 9bb8eb0,2018 年 3 月 8 日)您可以在 Git 2.27(2020 年第 2 季度)中找到此列表的另一个示例,其中教授“
am
”、“commit
”、“merge
”和“rebase
”,当它们与“--quiet
”选项一起运行时,将“--quiet
”传递给“<代码> gc --auto ”。请参阅 提交 7c3e9e8、提交 850b6ed(2020 年 5 月 6 日),作者: Junio C滨野 (
gitster
)。(由 Junio C Hamano --
gitster
-- 合并于 提交 3af459e,2020 年 5 月 13 日)With Git 2.17 (Q2 2018), you will have to add
git commit
to the list of commands triggering agit gc --auto
.Actually, that should have been the case since the beginning of Git.
See commit 095c741 (28 Feb 2018) by Ævar Arnfjörð Bjarmason (
avar
).(Merged by Junio C Hamano --
gitster
-- in commit 9bb8eb0, 08 Mar 2018)You can find another illustration of this list with Git 2.27 (Q2 2020), which teach "
am
", "commit
", "merge
" and "rebase
", when they are run with the "--quiet
" option, to pass "--quiet
" down to "gc --auto
".See commit 7c3e9e8, commit 850b6ed (06 May 2020) by Junio C Hamano (
gitster
).(Merged by Junio C Hamano --
gitster
-- in commit 3af459e, 13 May 2020)