回滚两次提交。重新申请第二次提交。分支并申请第一次提交

时间:2015-10-25 12:11:17

标签: git git-branch git-commit

在我的项目中,我最近做了两次提交。提交在不同的文件集上。我也远程推送了这些提交。类似于以下内容 -

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

我想做以下事项 -

  1. 在第一次提交之前将主数据库回滚,然后应用 第二次提交。
  2. 此时创建一​​个功能分支 并应用第二次提交(它也应该有第一次提交)。
  3. 这可以通过简单的方式实现吗?我已经考虑过使用git diff创建和使用补丁文件,但我想我先检查是否有更好的方法。

1 个答案:

答案 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