有人可以解释一个"跟踪分支",因为它适用于git?
这是git-scm.com的定义:
Git中的"跟踪分支"是连接到远程分支的本地分支.当您按下并拉动该分支时,它会自动推送并拉到与其连接的远程分支.
如果您始终从同一个上游分支拉入新分支,并且您不想明确使用"git pull",请使用此选项.
不幸的是,对于git和来自SVN的新手来说,这个定义对我来说绝对没有意义.
我正在阅读" Git的实用指南 "(顺便说一句好书),他们似乎建议跟踪分支是一件好事,并且在创建第一个遥控器(原点,在这种情况下)后,你应该将您的主分支设置为跟踪分支,但遗憾的是,它不包括为什么跟踪分支是一件好事,或者通过将主分支设置为原始存储库的跟踪分支而获得的好处.
有人可以赐教(英文)吗?
我今天在这里发帖的原因是因为我在命令行上看到的行为与我实际在网上阅读的行为不同。所以这让我很困惑。
这里有问题的两个命令是:
git branch -r -d origin/topic1
Run Code Online (Sandbox Code Playgroud)
和
git push origin :topic1
Run Code Online (Sandbox Code Playgroud)
到目前为止我的理解(不过我可能完全错了,我的大脑已经炸了):
这是我最近遇到的一个场景。我刚刚克隆了一个具有两个远程分支的存储库:
origin/master
origin/develop
Run Code Online (Sandbox Code Playgroud)
我唯一的本地分支机构是:
master
Run Code Online (Sandbox Code Playgroud)
我想删除远程分支origin/develop,所以请注意:
Robert@COMP /c/Code/project (master)
$ git branch -rd origin/develop
Deleted remote branch origin/develop (was 9ff16e8).
Robert@COMP /c/Code/project (master)
$ git fetch
From github.com:username/project
* [new branch] develop -> origin/develop
Run Code Online (Sandbox Code Playgroud)
如您所见,我尝试删除远程分支,并立即从源获取最新更改,但由于某种原因它重新创建了分支。我不知道为什么会这样做,我很困惑。我没有本地对应的分支origin/develop,所以我不知道它为什么这样做。
我想知道为什么会发生这种情况,而且(为了解决这个问题的更一般的标题,也许可以帮助其他人清理堆栈溢出以找到这些令人困惑的歧义的答案),我想对一些问题有更一般的答案: