我在 github 上有一个存储库,其中有一个主分支 (master) 和一个用于一些实验性工作的分支。我做了一些提交并推送到实验分支,一切都很好。
现在,在另一台机器上,我尝试克隆我的存储库 (git clone repository) 然后切换到实验分支 (git checkout branchname) 但每次我这样做我的头变得超然,我无法 push 我的改变。我究竟做错了什么?我觉得我在某个地方遗漏了一个基本的 git 概念,但随机阅读 git 手册页并没有给我任何线索。
我是 git 的新手,所以如果我是个白痴,我很抱歉,但我在文档中找不到任何可以帮助我重新思考的东西。
编辑
跟踪分支的概念正是我所缺少的。现在我明白了这个概念,一切都清楚了。就个人而言,我发现 git branch --track
语法比 git checkout -b branch-name origin/branch-name
更直观。
感谢您的帮助!
最佳答案
# first time: make origin/branchname locally available as localname
git checkout -b localname origin/branchname
# othertimes
git checkout localname
git push origin
为方便起见,您可以为本地名称和分支名称使用相同的字符串
当您 checkout origin/branchname
时,您并不是真正 checkout 一个分支。
origin/branchname
是一个“远程”名称,您可以使用
branch -a
如果您启用了颜色,则本地分支将是一种颜色,而远程分支将是另一种颜色。
您必须首先在本地跟踪一个远程分支,以便能够切换到并在其上工作。
关于git:在不分离头部的情况下切换分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/471300/