我将一个提交(Helm图表)推送到错误的分支,然后CI自动创建了Helm软件包,并在该分支上自动创建了另一个提交。然后,另一个用户将其提交推送到同一分支上。所以git日志说:
commit 100d13 (HEAD -> MyNewBranch, origin/release/1.2.3.4, origin/MyNewBranch)
Merge: 4a1ea73 af30075
Author: xyz
Date: Wed Feb 20 17:22:41 2019 +0000
Merge pull request #14 from Repo/branch-1
commit message
commit af30075 (origin/branch-1)
Author: Build Bot
Date: Wed Feb 20 17:20:45 2019 +0000
[ci skip] build 94:
commit 67d5135
Author: abc
Date: Wed Feb 20 17:09:41 2019 +0000
commit message
commit 4a1ea73
Author: Build Bot
Date: Tue Feb 19 10:21:28 2019 +0000
[ci skip] build 88: Added prometheus-0.2.0.tgz to repo.
commit 63fac96
Author: Me
Date: Tue Feb 19 10:17:40 2019 +0000
My wrong commit message
commit 26bd737
Merge: 1059c5f 25c082a
Author: xyz
Date: Thu Feb 14 09:08:25 2019 +0000
Merge pull request #8 from Repo/branch-2
commit message
所以在提交100d13中,我从origin / release / 1.2.3.4创建了新分支,这是我将更改推送到的分支。我想要的只是将63fac96和4a1ea73重新设置为origin / MyNewBranch。如何正确执行此操作?
编辑:
/--- origin/MyNewBranch ---
--- origin/release/1.2.3.4 ---/
我想将两个commits 63fac96和4a1ea73从release / 1.2.3.4重新部署到origin / MyNewBranch并仅在其中存在。
答案 0 :(得分:0)
我理解这个问题:
您不小心将了两个提交给另一个分支的提交合并到release / 1.2.3.4中。此后,其他人又承诺到同一个分支。
您希望将这些提交从release / 1.2.3.4分支中删除,并移到它们所属的新分支中。
我的假设:
解决方案:
git branch -D MyNewBranch
git checkout 26bd737
git checkout -b MyNewBranch
git cherry-pick 63fac96
git cherry-pick 4a1ea73
git push origin MyNewBranch --force
此分支完成。
git checkout release/1.2.3.4
git revert 4a1ea73
git revert 63fac96
git push origin release/1.2.3.4
就是这样。大功告成Helm大概会创建一个新包。