什么是Git修剪?

Dan*_*all 69 git git-extensions

我不小心修剪了一些远程分支,我真的不知道这是什么后果(我点击了Git Extensions中的"修剪远程分支"按钮,认为它会删除一个远程分支).

官方文档说"git-prune - 修剪对象数据库中所有无法访问的对象".我真的不明白这意味着什么.我猜这可能已经删除了合并的分支,但我不太确定.

161*_*903 73

Git Extensions中的"修剪远程分支"执行git remote prune命令,该命令将删除远程分支不再存在的本地远程跟踪分支.

请参阅:https://git-scm.com/docs/git-remote#git-remote-empruneem

  • @Honey 不,它只是删除了本地**远程跟踪分支**,不会触及正常分支。 (3认同)
  • 完整的命令是“git remote prune <name>”,其中“<name>”是远程的名称(通常是“origin”)。 (3认同)

blu*_*112 30

这只是垃圾收集你的分支机构.

这意味着,如果在您的任何分支的祖先中无法访问对象(提交),它将被移除给git数据库,因此无法再访问.

这只是清理一点git存储库并使其更轻.

  • 否决:这个答案(以及与此相关的问题)混淆了“git prune”和“git remote prune”。它们不一样,后者实际上清除了远程不再存在的分支,同时保持本地分支不变。 (4认同)
  • 根据文档,对于像这样的家政任务,最好执行“ git gc”而不是“ git prune”,后者实际上也将执行git prune。 (2认同)

yur*_*s87 16

重要的是要知道prune 是 repo-bound。不是每个人都知道您可以将本地存储库链接到多个遥控器。例如,当您使用开源项目并强制通过 fork 工作时,它会派上用场。

因此,prune 命令需要一个 repo 名称。在大多数情况下它是git remote prune origin,但你可以调用你的 repo 任何东西,它不一定是origin