Git将新分支的源更改为源分支的旧提交

时间:2017-04-05 07:09:46

标签: git github

我有一个分支主线,其中包含提交历史记录1-> 2-> 3-> 4-> 5。我使用

从主线创建了一个本地分支测试
git checkout -b "test"

我做了一些提交到测试分支,例如6-> 7。

这是从主线的头部映射的,即5号提交(即5-> 6-> 7)。

我希望测试分支从提交1中映射主线的头部。(即1-> 6-> 7)

怎么做?

2 个答案:

答案 0 :(得分:2)

您可以使用myFormControl.errors.myValidator来执行此操作。

rebase --onto

实施例: -

>>> git checkout test
>>> git checkout -b test2  # [optional] in case you have already pushed the test branch to remote, you can use test2 branch instead
>>> git rebase --onto <commit_id_of_1> <commit_id_of_5> <commit_id_of_7>

rebase documentation

答案 1 :(得分:1)

使用Cherry Pick

git checkout commit_id_7
git checkout -b repair new_test_branch
git cherry-pick commit_id_6
git cherry-pick commit_id_1
git checkout test
git reset --hard commit_id_7
git merge repair
git push --hard origin test

注意:Git rebase&amp; cherrypick是危险但功能强大的解决方案,只能用作最后一个选项