在漫游IRC世界的浪潮之后,有人给了一个伟大的解决方案:
git cherry-pick SHA1 --no-commit
git add --patch
希望,帮助任何人有同样的问题!
编辑:好的,也许不是那么简单。这里是完整的步骤:
>首先,您必须在您的存储库中,执行必要的cd-ing到您的工作目录。
>您现在需要添加远程分支,然后提取它。做到这一点:
git remote add someUser git://github.com/someUser/someRepo.git
git fetch someUser
>现在可以运行诸如git log someUser / master等命令来查找要在“部分”合并的提交SHA1。
>一旦你有SHA,你现在可以运行:
git cherry-pick -n SHA1
其中SHA1是提交SHA,duh!
>很可能会有冲突,取决于提交的年龄,以及项目的特定区域多久变化一次。抱歉,您必须使用可信任的编辑器手动解决这些问题。所以拉出VIM,或者你使用的任何东西,并且冲突冲突,直到你到达你喜欢的变化的阶段。
>现在您必须将索引重置为HEAD修订版本,然后您可以使用可信任的GIT add –patch命令选择并选择所需的更改:
git reset HEAD
git add –patch或git add -p
> Yay!提交时间:
git commit -m“我合并了一些选择的更改”
>清理混乱(这些东西,你说没有在Git添加–patch),只保留所选的更改在您的工作存储库,运行:
git reset –hard HEAD
显然git checkout -f是另一个选项。