Git反向合并子树

时间:2010-08-25 21:13:11

标签: git merge

我发现了一些其他问题,谈论Git中的反向合并,但这些问题是询问如何反向合并整个ENTIRE。我想反向合并树中的一个目录。这在Git中可能吗?

在颠覆中,你可以这样做:

$ cd /workingcopy/some/subtree
$ svn merge -r802:801 .

这计算版本801和802之间的反向差异,并仅将其应用于当前目录。

我能想到的最好的是

$ cd /gitrepo/some/subtree
$ git diff <commit-sha1> <commit-sha1>^ . > patchfile
$ patch -p1 < patchfile

虽然我还没有真正测试过这个。 git能做得更好吗?

1 个答案:

答案 0 :(得分:2)

您可以使用git checkout签出指定版本的整个目录。例如,要将目录src还原为提交五,请提交回来:

$ git checkout HEAD~5 -- src
$ git status           # See what files changes
$ git diff --cached    # Review the changes
$ git commit