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

参考:

Copyright © ghostwritten 浙ICP备2020032454号 2022 all right reserved,powered by Gitbook该文件修订时间: 2023-02-22 08:56:47

results matching ""

    No results matching ""