2015-10-25 165 views
2

在我的項目中,我最近做了兩次提交。提交在不同的文件集上。我還遠程推送了這些提交。像以下各項回滾兩個提交。重新申請第二次提交。分支和應用第一次提交

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. 在此時創建一​​個功能分支 並應用第二次提交(它也應該有第一次提交)。

這可能以簡單的方式實現嗎?我想過使用git diff創建和使用補丁文件,但我想我會首先檢查是否有更好的方法。

+1

閱讀關於交互式底膠和櫻桃採摘。 – MasterAM

回答

1

此時創建一​​個功能分支並應用第二次提交(它也應該有第一次提交)。

只需創建一個特性分支權在您master目前是:

git branch feature_branch 

回滾師傅之前第一次提交,然後只適用於第二個承諾。

git reset --hard @~2 

重新排序提交的特性分支

git checkout feature_branch 
git rebase -i master 
# switch second and first commit order 

然後重置主到feature_branch〜1(其被第二提交)

git checkout master 
git reset --hard feature_branch~1 

最後,推一切

git push --force origin master 
git push -u origin feature_branch 
+0

完美工作,謝謝。我用'git rebase -i HEAD〜2'來切換順序。 – hayesti

相關問題