Использование git diff branch1 branch2
На предыдущем этапе мы использовали команду git log
, чтобы увидеть, какие коммиты были в разных частях истории проекта. Теперь давайте используем команду git diff
, чтобы увидеть фактические изменения между двумя разными моментами времени или между разными ветками. Это похоже на сравнение двух версий вашей временной машины и наглядное определение, какие части были добавлены, удалены или изменены.
Сначала убедитесь, что вы находитесь в директории проекта:
cd ~/project/my-time-machine
В настоящее время у нас есть только одна ветка - master
. Чтобы продемонстрировать сравнение веток, создадим новую ветку с именем feature-branch
. Представьте ветку как альтернативную линию времени, где вы можете работать над новыми функциями или проводить эксперименты, не влияя на основную линию времени (master
).
git branch feature-branch
Теперь переключимся на нашу новую ветку:
git checkout feature-branch
Вы должны увидеть вывод, указывающий, что вы переключились на другую ветку:
Switched to branch 'feature-branch'
На этой новой ветке внесем изменения в файл message.txt
:
echo "Adding a line on the feature branch." >> message.txt
Эта команда добавляет новую строку в файл message.txt
.
Теперь зафиксируем эти изменения на ветке feature-branch
:
git add message.txt
git commit -m "Add a line to message.txt on feature branch"
После коммита вы должны увидеть вывод, похожий на следующий:
[feature-branch a1b2c3d] Add a line to message.txt on feature branch
1 file changed, 1 insertion(+)
Теперь у нас есть две ветки (master
и feature-branch
) с разной историей коммитов. Ветка master
содержит первые два коммита, а ветка feature-branch
содержит эти два коммита плюс новый коммит, который мы только что сделали.
Давайте используем команду git diff
, чтобы увидеть различия между веткой master
и веткой feature-branch
.
git diff master feature-branch
Вывод показывает точные строки, которые отличаются между двумя ветками:
diff --git a/message.txt b/message.txt
index a1b2c3d..e4f5g6h 100644
--- a/message.txt
+++ b/message.txt
@@ -1 +1,2 @@
Hello, Future Me
+Adding a line on the feature branch.
Этот вывод показывает, что файл message.txt
отличается. Строка, начинающаяся с +
, указывает на строку, которая была добавлена на ветке feature-branch
по сравнению с веткой master
.
Использование git diff
является очень мощным инструментом для понимания того, какие именно изменения были внесены между разными версиями проекта или между разными ветками. Это помогает вам просматривать изменения перед их объединением и определять, где произошли конкретные модификации.
Нажмите q
, чтобы выйти из режима просмотра различий и вернуться в командную строку.