这么多未使用的分支。如何清理?

时间:2013-01-17 15:57:16

标签: git

我有以下分支:

* master
newbranch
remotes/origin/HEAD -> origin/master
remotes/origin/api-notes
remotes/origin/event-creation-validation
remotes/origin/master
remotes/origin/organizerlocation-bug-demo
remotes/origin/ticket-180
  1. 当前的分支主数据是否与origin / master不同,或者这些分支是否一起工作?

  2. 如何检测不同分支中的最后更改以及如何将其删除以进行清理?

  3. 非常感谢。

2 个答案:

答案 0 :(得分:7)

您没有任何理由担心或清理任何事情。这就是原因:

当前分支主服务器与origin / master不同,或者这些分支是否一起工作?

如果你创建了master作为跟踪分支,或者你克隆了它(默认情况下克隆创建跟踪主机),那么是,等等。跟踪只是意味着git将使用此分支映射作为推送和合并的默认目标。它还将显示状态消息,例如“分支主机优先于2个提交原点/主设备”。

如何检测不同分支中的最后一次更改?

我只想使用

git branch -av

这显示了本地和远程所有分支的简短提交ID和简短摘要。

除此之外,您可能还想使用git log。 git log --decorate对于查看哪些分支指向提交内容非常有帮助。在最近的git版本(1.7.11+)中,您可以使用以下命令永久启用它:

git config --global log.decorate short

如何删除它们进行清理?

你没有 - 远程分支不是你的。远程分支仅在最后git fetch执行时反映远程状态。您无法创建它们,即使您使用git branch -rd删除它们,下次执行git fetch时,这些远程分支指针也会立即返回。

但是如果你完全删除了这个遥控器:

git remote rm origin

然后该遥控器的所有远程分支都将立即消失。

答案 1 :(得分:3)

1 /当前分支主服务器与origin / master不同,或者这些分支是否一起工作?

它是不同的(即使它是从克隆后的origin/master开始),并且没有跟踪origin/master(请参阅“how do I change the remote a git branch is tracking?”)。

2 /如何删除它们以进行清理

您可以使用以下命令从远程名称空间删除分支:

git branch -rd origin/api-notes

(更多内容见“How do you Remove an Invalid Remote Branch Reference from Git?”)

您可以通过git diff或git log两个分支来查看您没有的提交:
请参阅“Git diff .. ? What's the difference between having .. and no dots?” 另请参阅“Git: Compare All Local Commits to Remote Repo Version”。