Что такое git diff

Ответ

git diff — команда для просмотра изменений между коммитами, ветками, рабочим каталогом и индексом. Показывает разницу в файлах построчно.

Основные варианты использования:

  • git diff — изменения в рабочей директории (не добавленные в индекс)
  • git diff --staged — изменения, добавленные в индекс (staged)
  • git diff HEAD — все изменения (рабочие + staged)
  • git diff commit1 commit2 — разница между двумя коммитами

Пример:

# Показать изменения в конкретном файле
git diff app.js

# Сравнить текущую ветку с master
git diff master

Вывод включает:

  • + добавленные строки
  • - удаленные строки
  • контекстные строки вокруг изменений

Ответ 18+ 🔞

Давай разберём эту штуку, которая git diff, а то некоторые с ней как об стенку горох, блядь. Представь, что ты накодил какую-то дичь, а потом охуел и думаешь: "А что я, сука, вообще поменял? Всё сломалось, пиздец!"

Вот тут-то она и выручает, эта команда. Показывает тебе разницу между тем, что было, и тем, что стало. Построчно, как на ладони.

Куда тыкать, чтобы не облажаться:

  • git diff — это когда ты накодил, но ещё нихуя не добавил в индекс (git add не делал). Покажет всю твою текущую самодеятельность, всю эту ересь в рабочих файлах.
  • git diff --staged — а вот это уже для пафоса. Ты добавил изменения в индекс (застейджил), но хочешь глянуть, а что же, блядь, туда попало? Проверить, не закоммитил ли ты случайно свой пароль или фотку кота вместо логотипа.
  • git diff HEAD — это полный развод, показывает вообще всё: и что в индексе, и что ещё болтается в рабочей директории. Картина маслом, ебать.
  • git diff commit1 commit2 — для историков, блядь. Хочешь посмотреть, что изменилось между двумя старыми коммитами? Вот тебе машина времени. Подставляешь хеши и наслаждаешься.

Пример из жизни, чтобы не быть мудаком:

# Хочешь посмотреть, какую дичь ты натворил в конкретном файле app.js?
git diff app.js

# Или сравнить, насколько твоя ветка-выскочка уехала от master?
git diff master

Как читать этот её вывод, а то глаза разбегаются:

  • Строки, которые начинаются с + и зелененькие — это ты добавил. Новый код, красота.
  • Строки с - и красненькие — это ты, пидорас, удалил. Куда дел, а?
  • А вокруг — обычный текст, контекст, чтобы понятно было, где эти плюсики-минусики прилепились.

Вот и вся магия. Не такой уж и страшный зверь, правда? Главное — не забывать им пользоваться, а то потом охуеешь от последствий.