git:在不分离头部的情况下切换分支

标签 git version-control

我在 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/

相关文章:

git - 如何使用git merge 两个非git项目

java - 如何开启DDL事务支持?

混帐 : Merge multiple commits from one branch into another

Git:如何在项目中处理 git 库

node.js - Heroku 坚持为 NodeJs 应用程序构建源代码

version-control - 我应该为我的个人项目使用软件托管解决方案吗?

git - 对于所有开发人员都在所有项目上工作的小型团队来说,哪个 git 流程最好?

eclipse - 忽略 Eclipse 工作区的模式

git - 从 Bitbucket (git) 上的远程恢复已删除的分支

git - 跨具有不同提交历史的存储库应用补丁