当前位置:  开发笔记 > 开发工具 > 正文

git:switch分支没有分离头

如何解决《git:switch分支没有分离头》经验,为你挑选了3个好方法。

我在github上有一个存储库,它有一个主分支(master)和一个分支用于一些实验工作.我做了一些提交并推到实验分支,一切都很好.

现在,在另一台机器上,我尝试克隆我的存储库(git clone repository),然后切换到实验分支(git checkout branchname),但每次我这样做时,我的头都会分离,我无法推动我的更改.我究竟做错了什么?我觉得我在某个地方缺少一个基本的git概念,但是阅读随机的git手册页并没有给我任何线索.

我是git的新手,所以我很抱歉,如果我是一个白痴,但我在文档中找不到任何可以帮助我重新认识的东西.

编辑

跟踪分支的概念是我所缺少的.现在我认识到这个概念一切都很清楚.就个人而言,我发现git branch --track语法比直观更直观git checkout -b branch-name origin/branch-name.

谢谢您的帮助!



1> Kent Fredric..:
# first time: make origin/branchname locally available as localname
git checkout -b localname origin/branchname 

# othertimes 
git checkout localname 

git push origin

为方便起见,您可以对localname和branchname使用相同的字符串.
当您签出时,origin/branchname您并未真正签出分支. origin/branchname是一个"远程"名称,你可以得到它们的列表

branch -a 

如果启用了颜色,则本地分支将是一种颜色,而远程另一种颜色.

您必须首先在本地跟踪远程分支,以便能够切换到并对其进行处理.


男人,为什么不"git checkout origin/branchname"在没有跟踪的情况下自动开始跟踪分支?
因为您仍然需要外部分支的本地名称.
感谢有关颜色的提示.要启用颜色:`git config --global --add color.ui true`

2> Christoph Rü..:
git clone git@github.com:abc/def.git
cd def

现在创建一个跟踪分支:

git branch --track experimental origin/experimental
git checkout experimental

然后,在那里工作之后,只需按下到github

git push


git branch -t origin/experimental#不需要输入那么多:)

3> Pat Notz..:

为了扩展Kent的回复,在你做克隆之后,你所拥有的唯一分支(遥控器不计算)是你克隆的存储库中活动的分支 - 在你的情况下为master.

所以,首先你要创建一个新的分支来跟踪远程实验分支:

$ git branch experimental origin/experimental

然后检查出来:

$ git checkout experimental

但是,Kent是正确的 - 这两个命令可以组合在一起

$ git checkout -b experimental origin/experimental

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有