12

我有以下分支:

* 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. 当前的分支 master 是否与 origin/master 不同,或者这些分支是否一起工作?

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

非常感谢你。

4

2 回答 2

7

你没有任何理由担心或清理任何东西。这就是为什么:

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

如果您将 master 创建为跟踪分支,或者您克隆了它(默认情况下克隆创建跟踪 master),那么是的,有点。跟踪仅仅意味着 git 将使用这个分支映射作为推送和合并的默认目标。它还将显示状态消息,例如“branch master 比 origin/master 早 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

那么这个遥控器的所有远程分支将立即消失。

于 2013-01-17T17:22:30.217 回答
3

1/ 当前分支 master 与 origin/master 不同还是这些分支一起工作?

它是不同的(即使它是从origin/master克隆之后开始的),并且没有跟踪origin/master(请参阅“如何更改 git 分支正在跟踪的远程? ”)。

2/我怎样才能删除它们进行清理

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

git branch -rd origin/api-notes

(更多内容请参见“如何从 Git 中删除无效的远程分支引用? ”)

您可以 git diff 或 git log 两个分支来查看您没有的提交:
请参阅“ Git diff .. ?有和没有点有什么区别..? ”。
另请参阅“ Git:将所有本地提交与远程回购版本进行比较”。

于 2013-01-17T16:05:39.017 回答