在我的项目中,我最近做了两次提交。提交在不同的文件集上。我也远程推送了这些提交。类似于以下内容 -
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创建和使用补丁文件,但我想我先检查是否有更好的方法。
答案 0 :(得分:1)
此时创建一个功能分支并应用第二个提交(它也应该有第一个提交)。
只需在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