Пишу заметку для себя и хочу рассказать другим про поведение команды git diff
Если Вы закончили задание, но еще не коммитили, то diff изменений можно посмотреть так:
git add .
git diff --cached --binary
Диф между коммитами (по хэшам коммитов)
Диф будет включать бинарные файлы (например изображения):
git diff --binary hash1 hash2
разница в порядке указания hash1 hash2 или hash2 hash1 имеет большое значение, и обычно делают так:
git diff --binary старый новый
при этом hash1 указывается тот, который уже у вас есть.
Диф между ветками (разница порядка указания веток)
Следующей командой мы говорим, что ветка branch_1 старее чем branch_2. Следовательно если в ветке branch_2 появились новые файлы, то в дифе они будут выглядеть как файлы, которые нужно создать.
git diff branch_1 branch_2
А следующей командой мы говорим, что ветка branch_1 новее чем branch_2. Следовательно если в ветке branch_2 были новые файлы, то в дифе они будут выглядеть как файлы, которые следует удалить.
git diff branch_2 branch_1
Соответственно если branch_1 это Ваша мастер-ветка, а branch_2 это ветка с Вашим заданием, то правильным будет вариант 1.
Архив с изменениями
Соберем в zip-архив все файлы над которыми произведены изменения:
tar czf new-files.tar.gz `git diff master --name-only`
Удачки в освоении гита!