gpt4 book ai didi

git remote prune – 显示的修剪分支没有我预期的那么多

转载 作者:IT王子 更新时间:2023-10-29 01:22:24 37 4
gpt4 key购买 nike

来自手册页:

Deletes all stale tracking branches under <name>.
These stale branches have already been removed from the remote repository
referenced by <name>, but are still locally available in "remotes/<name>".

所以我删除了一堆分支使用

git push origin :staleStuff

然后跑

git remote prune origin

但是,只修剪了一个本地分支。这些分支有的是我创建的,有的是同事创建的。这是否表明我一开始就没有正确跟踪这些分支?

最佳答案

当您使用 git push origin :staleStuff 时, 它会自动删除 origin/staleStuff ,所以当你运行 git remote prune origin ,你修剪了一些被其他人移除的分支。您的同事现在更有可能需要运行 git prune摆脱你已经删除的分支。


那到底是什么git remote prune做?主要思想:git remote prune 不涉及本地分支机构(不是跟踪分支机构)命令,应手动删除。

现在,为了更好地理解一个现实世界的例子:

您有一个包含 2 个分支的远程存储库:masterfeature .假设您在两个分支上工作,因此您在本地存储库中有这些引用(给出完整的引用名称以避免任何混淆):

  • refs/heads/master (简称 master )
  • refs/heads/feature (简称 feature )
  • refs/remotes/origin/master (简称 origin/master )
  • refs/remotes/origin/feature (简称 origin/feature )

现在,一个典型的场景:

  1. 其他一些开发人员完成了 feature 的所有工作, merge 到 master并删除 feature来自远程存储库的分支。
  2. 默认情况下,当您执行 git fetch (或 git pull ),没有引用从您的本地存储库中删除,因此您仍然拥有所有这 4 个引用。
  3. 您决定清理它们,然后运行 ​​git remote prune origin .
  4. git 检测到 feature分支不再存在,所以 refs/remotes/origin/feature是一个陈旧 分支,应该被删除。
  5. 现在您有 3 个引用文献,包括 refs/heads/feature ,因为 git remote prune不删除任何 refs/heads/*引用资料。

通过 branch.<branch_name>.merge 可以识别与远程跟踪分支关联的本地分支配置参数。任何工作都不需要这个参数(可能除了 git pull ),所以它可能会丢失。

(更新了评论中的示例和有用信息)

关于git remote prune – 显示的修剪分支没有我预期的那么多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4040717/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com