[英]Using Git, how do I create a list of patches that contains only changes in a certain directory?
我正在尝试将Julia的补丁应用于Femtolisp。 但是,Julia将其版本保留在自己的源代码管理树中。 因此,诸如git format-patch
类的工具无法使用,因为它们不允许按目录过滤。
我是编写脚本以过滤掉不需要的补丁程序的最佳选择,还是Git内置了此功能?
我不知道可以执行所需的GIT命令,但是可以使用一些命令和一些Shell来完成工作。 类似于以下内容:
$ mkdir mypatches
$ N=1
$ for x in $(git rev-list FROM_COMMIT..TO_COMMIT)
do
P=$(git diff $x^..$x -- DIRECTORY)
if [ -n "$P" ]
then
echo "$P" > mypatches/$(printf %06d $N).patch
N=$((N+1))
fi
done
您可以使用git diff命令来获取两个文件夹之间的区别...
git diff folder1 folder2 > diff.patch
cd folder1
patch -p1 < diff.patch
或者您可以使用简单的diff命令...
diff -Naru folder1 folder2 > diff.patch
cd folder1
patch -p1 < diff.patch
在这种情况下,文件夹1和文件夹2的区别仅适用于文件夹1。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.