首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将提交拆分为两个分支

将提交拆分为两个分支
EN

Stack Overflow用户
提问于 2015-07-06 09:52:28
回答 2查看 4.2K关注 0票数 8

我在一个叫feature-1的树枝上。我运行git log,它向我展示了一堆提交:

代码语言:javascript
复制
commit <HASH-1>
…
commit <HASH-2>
…
commit <HASH-3>
…
commit <HASH-4>
…

现在,我希望commit <Hash-3>和更高版本的提交在feature-1分支上,而commit <HASH-2>和更新的提交则在一个名为feature-2的新分支上。我怎么能这么做?

EN

回答 2

Stack Overflow用户

发布于 2020-01-18 19:34:18

这是交互式重基功能的一个很好的用例。首先运行git branch feature-2。这将在与当前HEAD (指向feature-1)相同的提交上创建一个新的分支feature-1

不,你只是运行git rebase -i origin/master。这将使用以下内容打开您的$EDITOR

代码语言:javascript
复制
pick 3182a77e Commit 1
pick 6f717613 Commit 2
pick f30c1e92 Commit 3
pick b1c13f14 Commit 4

现在您只需删除前两行,因此只需要在feature-1中提交。那就保存文件。现在,git将重新创建提交,以便feature-1包含所需的提交。

不是运行git checkout feature-2,然后再运行git rebase -i origin/master。您将再次看到所有4次提交,这一次只需在feature-2中保留您想要的。然后再次保存文件,您就完成了。

票数 7
EN

Stack Overflow用户

发布于 2015-07-06 10:34:01

签出您想要在新分支下的提交,然后从这里创建分支。

代码语言:javascript
复制
git log --oneline ...

commit <HASH-1>
commit <HASH-2>
commit <HASH-3>
commit <HASH-4>


git checkout -b feature-1 <HASH-3> 
git checkout -b feature-2 <HASH-2> 

and so on,

您只需签出您想要的任何提交(历史记录中的任何点),然后在此时创建分支。

如何创建分支?

可以通过以下几种方式创建分支:

从当前提交创建分支

  • 通过创建分支蚂蚁而不是检查它们 git branch < branch_name>
  • 通过创建并切换到一个新的分支签出-b git签出-t

默认的SHA-1 (如果没有指定)是

从选定的提交创建分支

通过将沙-1添加到签出命令中,您可以将“设置”作为创建分支的提交。

代码语言:javascript
复制
    git checkout -b <branch_name> <sha-1>
    git checkout -t <branch_name> <sha-1>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31242719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档