Git从另一个分支开始分支而不跟踪

时间:2016-03-27 13:19:57

标签: git

我想创建一个分支foo(并将其签出),它将与origin/bar在同一个提交中开始,但我目前没有{{1 }} 检查过了。有没有这样做的单行?

4 个答案:

答案 0 :(得分:4)

您可以在一个命令中执行此操作:git checkout允许直接指定git branch&n; --no-track选项。

git checkout -b foo --no-track origin/bar

答案 1 :(得分:0)

这应该可以解决问题:

git branch foo origin/bar
git checkout foo

如果你坚持使用oneline:

git checkout -b foo origin/bar

答案 2 :(得分:0)

这取决于您是否希望新分支跟踪远程origin/bar

跟踪遥控器:

git checkout -b foo origin/bar

不跟踪遥控器:

git checkout -b foo --no-track origin/bar

(您以后可以随时添加跟踪关系。)

答案 3 :(得分:-1)

Git有一个用于创建这样一个分支的标志:

https://git-scm.com/docs/git-checkout/

  

<强> --orphan
  创建一个名为,启动并切换到它的新孤立分支。在这个新分支上进行的第一次提交将没有父级,它将成为与所有其他分支和提交完全断开的新历史的根。

     

调整索引和工作树,就好像之前已运行git checkout <start_point>一样。

     

这允许您开始一个新的历史记录,它记录一组类似于通过轻松运行git commit -a来进行根提交的路径。

     

当您想要从提交中发布树而不公开其完整历史记录时,这可能很有用。您可能希望这样做以发布当前树为clean的项目的开源分支,但其完整历史记录包含专有或其他受阻的代码。

     

如果要启动记录一组完全不同的路径的断开连接的历史记录,则应在创建孤立分支后立即清除索引和工作树,方法是运行git rm -rf .工作树的顶层。之后,您将准备好准备新文件,重新填充工作树,从其他地方复制它们,提取tarball等。