我在一个叫feature-1的树枝上。我运行git log,它向我展示了一堆提交:
commit <HASH-1>
…
commit <HASH-2>
…
commit <HASH-3>
…
commit <HASH-4>
…现在,我希望commit <Hash-3>和更高版本的提交在feature-1分支上,而commit <HASH-2>和更新的提交则在一个名为feature-2的新分支上。我怎么能这么做?
发布于 2020-01-18 19:34:18
这是交互式重基功能的一个很好的用例。首先运行git branch feature-2。这将在与当前HEAD (指向feature-1)相同的提交上创建一个新的分支feature-1。
不,你只是运行git rebase -i origin/master。这将使用以下内容打开您的$EDITOR:
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中保留您想要的。然后再次保存文件,您就完成了。
发布于 2015-07-06 10:34:01
签出您想要在新分支下的提交,然后从这里创建分支。
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>默认的SHA-1 (如果没有指定)是头。
从选定的提交创建分支
通过将沙-1添加到签出命令中,您可以将“设置”作为创建分支的提交。
git checkout -b <branch_name> <sha-1>
git checkout -t <branch_name> <sha-1>https://stackoverflow.com/questions/31242719
复制相似问题