我发现了一些其他问题,谈论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能做得更好吗?
答案 0 :(得分:2)
您可以使用git checkout
签出指定版本的整个目录。例如,要将目录src
还原为提交五,请提交回来:
$ git checkout HEAD~5 -- src
$ git status # See what files changes
$ git diff --cached # Review the changes
$ git commit