我有以下分支:
* 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
当前的分支主数据是否与origin / master不同,或者这些分支是否一起工作?
如何检测不同分支中的最后更改以及如何将其删除以进行清理?
非常感谢。
答案 0 :(得分:7)
您没有任何理由担心或清理任何事情。这就是原因:
如果你创建了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”。