Почему git diff считает, что что-то изменилось, когда то же самое в обеих ветках? - PullRequest
2 голосов
/ 02 мая 2019

При использовании git diff для просмотра того, что изменилось между двумя ветками, я часто вижу неожиданные результаты Я хотел бы понять, почему git иногда считает, что строка изменилась, когда содержимое строки идентично в обоих файлах. Есть ли что-то скрытое, что меняется? Или git что-то делает, когда сравнивает файлы? Это не всегда так, но я нахожу, что это происходит иногда, и хотел бы понять, почему?

На мастере ...

function a() {
  do_something();
}

На разработке ...

function a() {
  do_something();
}

function b() {
  do_something_else();
}

git diff пример 1

-  }
+  }
+  
+  function b() {
+    do_something();
+  }

git diff, пример 2

Иногда я также вижу этот тип вывода. (Обратите внимание, что последняя строка не является дополнением.)

+  }
+  
+  function b() {
+    do_something();
+  }
   }

Я ожидаю, что результат в обоих этих примерах будет следующим:

+  
+  function b() {
+    do_something();
+  }

Может кто-нибудь объяснить, что здесь происходит и в качестве бонуса, как это предотвратить?

1 Ответ

0 голосов
/ 02 мая 2019

Чтобы увидеть различия без учета пробелов, вы можете использовать git diff -w: это будет фокусироваться на более значимой разнице в вашем случае.

Убедитесь, что вы используете последнюю версию Git, так как diff эвристика изменилась в прошлом .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...