赞
踩
如果你有两个分支(例如,一个叫old-branch
,另一个叫new-branch
),并且你想比较这两个分支以去掉new-branch
中old-branch
已经做过的修改,你可以使用以下几种方法:
git diff
和 git apply
生成两个分支之间的差异:
git diff old-branch..new-branch > changes.patch
切换到new-branch
:
git checkout new-branch
反向应用差异:
git apply -R changes.patch
这将撤销new-branch
中所有old-branch
已经做过的更改。
git rebase -i
切换到new-branch
:
git checkout new-branch
交互式地rebase到old-branch
:
git rebase -i old-branch
这将打开一个文本编辑器,列出所有new-branch
相对于old-branch
的提交。你可以删除那些你不想保留的提交行。
git cherry-pick
如果你知道具体哪些提交是new-branch
特有的,并且你想保留它们,你可以创建一个全新的分支,然后逐一选择你想要的提交。
从old-branch
创建一个新分支:
git checkout old-branch
git checkout -b new-clean-branch
逐一选择(cherry-pick)你想要的提交:
git cherry-pick <commit_hash>
这样,new-clean-branch
就只会包含你明确选择的提交,而不会有old-branch
中的任何更改。
选择适合你的方法,并谨慎操作。希望这能帮助你!有其他问题吗?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。