我试图了解git如何应用统一差异。
我写了以下#34;身份"补丁:
--- a/js/controllers.js
+++ b/js/controllers.js
@@ -15,3 +15,3 @@
- '$location',
- function ($scope, $routeParams, $location) {
- doSomething();
+ '$location',
+ function ($scope, $routeParams, $location) {
+ doSomething();
系统补丁命令成功应用此补丁,而git-apply提供以下输出:
error: patch failed: [...]js/controllers.js:15
error: [...]js/controllers.js: patch does not apply
我不明白为什么。
答案 0 :(得分:0)
您的补丁没有上下文。 diff
也会在更改之前和之后包含一些未修改的行。来自git apply
文档:
--unidiff-zero
默认情况下,git apply要求应用的补丁是一个统一的差异,至少有一行上下文。这提供了良好的安全措施,但在应用使用
--unified=0
生成的差异时会出现故障。要绕过这些检查,请使用--unidiff-zero
。请注意,由于上述原因,不鼓励使用无上下文补丁。