这个问题是关于 git apply
的。
有没有办法区分:它失败的原因是...
- ...补丁已经被应用了。
- ...源代码确实不同。
我工作的目录不是 git 目录,因此我不能使用 git log
或其他东西。
我知道 -R
(反向)选项,因此我的当前解决方法是:
git apply abc.patch || git apply abc.patch -R --check && echo already applied
如果git apply abc.patch
失败,那么git apply abc.patch -R --check && git apply abc.patch
将会被执行,它会检查补丁是否已经被应用过(git apply abc.patch -R --check
),如果是这种情况,它会回显“already applied”。
但我不喜欢这种方式,难道在git的apply中没有类似的内置解决方案吗?