zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Git remote prune、Git prune 和 Git fetch –prune 的区别

Git 区别 Remote fetch
2023-09-11 14:15:46 时间

Git remote prune、Git prune 和 Git fetch –prune 的区别

1. 背景

Git 的一大优点是它在删除数据时非常小心。这使得 Git 中的提交或其他有价值的数据很难丢失!这样做的一个小缺点是您有时可能会看到实际上不再需要的陈旧数据。最好的例子之一是对已删除的远程分支的引用:假设您的一位队友删除了共享远程存储库中的一个分支;该分支仍会为您显示,除非您明确指示 Git 进行清理。

2. 方法

在远程存储库上使用“prune”:
“prune”可作为 git fetchgit remote 命令的选项使用。(git prune 命令——在垃圾收集期间使用。)。使用 prune 的最简单方法是在获取时将其作为选项提供:

git fetch --prune origin

如果您只想*执行prune而不*获取远程数据,您可以将它与 git remote 一起使用:

git remote prune origin

两种情况下的结果是相同的:对指定远程存储库中不再存在的远程分支的陈旧引用将被删除。顺便说一句:你永远不必担心你当地的分支机构,因为修剪永远不会影响那些。

克隆同一个 repo 两次,以便您正确理解 git prune 的工作原理。

git clone repolink

  • 在一个回购上创建一个分支并在其副本上获取它
  • 从一个回购中删除该分支
  • 当您在另一个仓库中列出分支时,它不会得到更新。
git branch 
git push origin HEAD
git branch -r


使用 git fetch –prune

如果我们使用 prune 命令删除,该分支将在 2nd repo 中自动更新

git fetch --prune


假设在某些情况下您希望*只*执行prune并且不获取远程数据

git remote prune origin

如果你想自动prune自己

git config —global fetch.prune true

参考:

更多阅读: