创建一个包含跟踪信息的新分支

时间:2016-06-16 13:27:03

标签: git

这是我通常的工作流程:

  1. 创建新分支:git checkout -b foo
  2. 提交一些东西
  3. 做推:git push
  4. 生气,推不起作用(没有上游设置)
  5. 触及鼠标以突出显示git推荐的命令(仍然生气)
  6. 按上游设置推送:git push --set-upstream origin foo(愤怒消退)
  7. 而不是4.到6.,我想在本地创建新分支时做一些工作(不一定让我的分支公开,所以没有推动)杀死步骤4.通过这可能吗?

    理想情况下类似于git checkout -b foo -t origin,通知git我打算在origin中跟踪同名分支。

    我尝试了什么

    git checkout -b foo --set-upstream origin foo〜> error: unknown option 'set-upstream'

    git checkout --track origin/foo〜> fatal: Cannot update paths and switch to branch 'foo' at the same time.

    git checkout -b foo --track origin/foo〜> fatal: Cannot update paths and switch to branch 'foo' at the same time

    git checkout -b foo --track〜> Branch foo set up to track local branch master.

3 个答案:

答案 0 :(得分:6)

answer有一个稍微不同的主题,可以帮助您完成工作流程(不是100%肯定)。

  

您可以通过减少输入来实现这一目标。首先,改变你的方式   推动工作:

git config --global push.default current
     

这将推断origin my_branch部分,因此您可以这样做:

git push -u
     

这将创建具有相同的远程分支   命名并跟踪它。

实际上你甚至可以省略-u,它仍然有用。

答案 1 :(得分:1)

如果要在步骤1上设置上游。您将打破git作为分布式版本控制系统的概念。您可以使用另一个版本控制系统svn执行此操作。

或者,您可以在-u上使用git push标志来设置上游,然后再提交文件。

git branch branch-name
git push -u origin branch-name
...
git commit ...
...
git push

答案 2 :(得分:1)

如果没有-b,它就像git checkout branch-name一样简单。这会在您的源上创建与branch-name关联的远程跟踪分支。好吧,对我来说。我不明白什么不适合你?