如何将Git分支移动到自己的存储库中?

Aup*_*ajo 161 git branch extract

我有一个分支,我想进入一个单独的Git存储库,理想情况下保持该分支的历史记录.到目前为止,我一直在关注git filter-branch,但我无法弄清楚它是否可以做我想做的事情.

如何将Git分支提取到自己的存储库中?

CB *_*ley 258

您只需将分支推送到新的存储库即可.它的所有历史都将随之而来.然后,您可以选择是否从原始存储库中删除分支.

例如

git push url://to/new/repository.git branch-to-move:new-branch-name
Run Code Online (Sandbox Code Playgroud)

对于新的存储库,new-branch-name通常是master.

可以使用创建新的空存储库git init.

  • 您还可以在新存储库中命名分支名称:`git push url://to/new/repository.git branch-to-move:new-branch-name` (45认同)
  • 为了防止有人想知道,我用URL替换了Git存储库目录的路径,并且完美无缺. (13认同)
  • Yves上面的评论是正确的,否则你将没有掌握,克隆过程将结束`警告:远程HEAD指的是不存在的ref,无法结账.如果已经在那个阶段,只需使用`git checkout -b branch-to-move`然后你就安全了,或者你只需​​要使用`git checkout -b master`来拥有你的主分支:) (4认同)
  • 如果这个答案也让您感到困惑,以下是我如何理解它以使其工作:1)在您的终端中,位于包含您想要制作成新存储库的存储库和分支的目录中;2) `url` 应该是一个 git url,比如 git@github.com:brianzelip/groceries.git;3) `branch-to-move` 是当前仓库的分支,你想做成一个新的仓库;4) `new-branch-name` 是你想要创建的新仓库中新分支的名称,即:`master`。 (4认同)

Dam*_*mon 18

这将保留所有分支的历史记录,但特别是使您的副本指向一个分支:

git clone -b newbranch CurrentRepo NewRepo
Run Code Online (Sandbox Code Playgroud)

这不会"移动"任何东西,只需复制一份.

  • 值得注意的是`clone -b`是新的.它需要git> = 1.6.5(2009年10月发布). (2认同)