什么是Git修剪?

时间:2016-03-18 11:05:58

标签: git git-extensions

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

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

4 个答案:

答案 0 :(得分:61)

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

见这里:https://git-scm.com/docs/git-remote#git-remote-empruneem

答案 1 :(得分:24)

这只是垃圾收集你的分支。

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

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

答案 2 :(得分:1)

可能有远程功能分支在我们合并到主服务器后被删除。我们可能已删除功能分支作为清理方法。但是,如果您已将已删除的分支签出到本地系统并将状态设置为跟踪,则git pull将不会删除这些本地分支(因为它们已经与服务器断开连接)。要清理那种本地孤立分支,git prune命令将会派上用场帮助。

答案 3 :(得分:1)

重要的是要知道修剪是回购绑定。并非所有人都知道您可以将本地存储库链接到多个远程服务器。例如,当您处理一个开源项目并被强制通过fork进行工作时,它会派上用场。

因此,prune命令需要一个仓库名称。在大多数情况下,它是git remote prune origin,但您可以调用仓库任何东西,而不必是origin