在我的项目中,我最近做了两次提交。提交在不同的文件集上。我还远程推送了这些提交。如下所示-
git commit file-a file-b -m "first commit of new features"
git commit file-c file-d -m "second commit of new features"
git push -u origin master
我想做以下事情-
- 回滚主服务器到第一次提交之前,然后应用仅第二次提交。
- 此时创建一个特性分支并应用第二次提交(它也应该有第一次提交)。
这是否可以用一种简单的方式实现?我想过用git diff创建和使用补丁文件,但我想我会先检查一下是否有更好的方法。
在这里创建一个特性分支,并应用第二次提交(它也应该有第一次提交)。
简单地在你的master
当前所在的位置创建一个功能分支:
git branch feature_branch
回滚到第一次提交之前,然后只应用第二次提交。
git reset --hard @~2
在特性分支上重新排序提交
git checkout feature_branch
git rebase -i master
# switch second and first commit order
然后将master重置为feature_branch~1(这是第二次提交)
git checkout master
git reset --hard feature_branch~1
最后,按下
git push --force origin master
git push -u origin feature_branch