1

这里有一个父问题:使用 Git 将最近的提交移动到新分支

我接手了一个项目,该项目的工作树充满了仍需要组织的文件——有些是指正在进行的工作任务;其他都完成了。我最近提交了已完成的工作,但这不是用于生产的。我怎样才能谨慎地将它移动到一些新的分支而不搞砸我当前的树?

I'd like to change

Working tree - A - B - C - D - E

to

Working tree - B - C - D - E
              /
             A
4

3 回答 3

0
git branch tmp
git reset --soft B

将 HEAD(并且只有 HEAD)移动到(用 ' ' 分支B标记后)Atmp

有关更多信息,请参阅“实际用途git reset --softreset --soft

于 2012-11-15T13:28:46.887 回答
0

checkout -b "name of branch"您一起创建一个新的本地分支。

于 2012-11-15T12:28:16.147 回答
0

先在某处写A的SHA1,以后会用到。

git checkout <E's SHA1>
git rebase -i HEAD~6(6 是从 E 到 A 的提交距离加一)

在编辑器中删除 A 的行并保存。

现在你有了这个:

 Working tree - B - C - D - E

现在我们要创建一个到 A 的分支,从 B 开始:

git checkout <B's SHA1>
git branch BAbranch(或者你想怎么称呼它)
git checkout BAbranch
git cherry-pick <A's SHA1>

现在你有了这个:

 Working tree - B - C - D - E

                  \

                     A  
于 2014-03-26T17:22:09.787 回答