我在08/01年“ 12345-Fix”上创建了新的分支机构
我在08/04“ 56789-Fix”上从master创建了新分支
在08/05,我将“ 56789-Fix”分支代码推送到了远程主分支,因此这同时在主分支中推送了提交4和提交5。
从08/06开始重新制作“ 12345-Fix”
在08/07,我将“ 12345-Fix”分支代码推送到了远程主服务器,因此这将所有5个提交(1,2,3,6,7)都推送到了master分支。
现在,当我在Github中查询时,提交列表显示为
我的问题是,如果我只想回滚master分支中的“ 12345-Fix”分支代码,该怎么做?我知道我可以回滚到某些提交“ Commit 1”,但是它会回滚Commit 4和Commit 5的“ 56789-Fix”,我不想回滚。
有什么建议吗?
答案 0 :(得分:0)
最初休息到HEAD-2
删除6、7
git reset HEAD~2
git checkout .
使用git stash记录4,5
git reset HEAD~1
git stash
git reset HEAD~1
git stash
使用git reset HEAD〜3重置为1之前的提交(删除1,2,3 )
git reset HEAD~3
git checkout .
使用git stash pop弹出记录的commit(4,5)
git stash pop
git commit -am "commit 4"
git stash pop
git commit -am "commit 5"
git push origin master -f
答案 1 :(得分:0)
自从提交提交以来,您将需要创建一个或多个新提交来撤消提交1,2,3,6和7的影响。此命令为VT_RECORD
。
我想做类似的事情
git revert
然后检查git revert --no-commit 1 2 3 6 7
所做的更改是否是您想要的,然后使用常规的git revert
提交这些撤消操作。
您将需要在命令中正确标识每个提交,并且不能使用如图所示的数字。我建议使用每个提交ID的前几个字符代替我上面显示的每个小整数,或者,如果您有信心的话,可以使用修订范围。