是否可以在不丢失历史记录的情况下还原对特定分支所做的所有更改?
我分支大师很久以前隐藏的具体特征,但现在这个分支必须成为相同的大师,但我需要分支历史完整。
master -> branched -> (revert stripping) -> branched = master
分支现在应该反映master,尽管我希望分支中的提交包含到达master所需的所有更改。
我能想到的最简单的方法是复制master的源并在分支中删除/粘贴文件,但我担心这是否会在以后从master合并时产生冲突?

最佳答案

编辑:
preuk的解决方案对我不起作用(git 2.2.1),但是这些命令可以工作:

$ git checkout branched
$ git revert -n master..branched
$ git commit -m "Revert to master"

起始职务:
我建议在专用分支上使用git format-patch后跟git am,用git rebase -i挤压提交,然后在分支上应用结果:
branched开始创建新分支:
$ git checkout branched
$ git checkout -b tmpbranch

branchedmaster之间应用反向提交:
$ git format-patch -R master..branched --stdout | git am

将提交压缩为单个提交:
$ git rebase -i branched
$ # Use the squash command for all commits except the first one
$ # and set the log message to "Revert to master" for instance.

然后合并并删除临时分支branchedtmpbranch
$ git checkout branched
$ git merge tmpbranch
$ git branch -d tmpbranch

关于git - 还原所有分支特定的更改,以便分支反射(reflect)主节点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29768207/

10-09 07:41
查看更多