Система контроля версий Git. Сравнение версий и отмена изменений.

Тест на закрепление изученного материала в курсе "Система контроля версий Git" в первом разделе "Сравнение версий и отмена изменений".

1. Что будет выведено в результате выполнения следующей команды? git diff <commit1> <commit2>

Сначала изменения в commit1, а затем — в commit 2
Все изменения, произошедшие между commit1 и commit2, не включая изменения в commit2
Все изменения, произошедшие между commit1 и commit2, не включая изменения в commit1
Все изменения, произошедшие между commit1 и commit2, включая изменения в commit1 и в commit2
Все изменения, произошедшие в проекте после commit1 до commit2 включительно
Все изменения, произошедшие в проекте после commit2 до commit1 включительно

Подсказка:
Команда git diff при указании ей в качестве параметров хешей двух коммитов выводит все изменения, сделанные после первого коммита до второго включительно.

2. С помощью какой команды можно просмотреть авторов каждой строчки кода в файле?

git log <file>
git blame <file>
git authors <file>
git lines-info <file>

Подсказка:
Просмотреть авторов каждой строки в файле, равно как и даты внесения в них изменений и хеши соответствующих коммитов, можно с помощью команды git blame. Других перечисленных команд не существует.

3. Какие незакоммиченные изменения не удаляет команда git reset —hard?

Изменения, которые не отслеживаются Git’ом
Изменения, добавленные в индекс
Изменения, сделанные root-пользователем
Изменения, не добавленные в индекс

4. В рабочей директории один файл изменили и добавили в индекс, но ещё не закоммитили. Как можно отменить все сделанные в нём изменения?

git reset —hard
git reset —soft
git restore —staged <file> git restore <file>
git restore <file> git restore —staged <file>

Подсказка:
Команда git reset --hard отменяет все незакоммиченные изменения, в том числе добавленные в индекс, кроме неотслеживаемых изменений, а команда git reset --soft на добавленный в индекс файл никак не повлияет. Команда git restore отменяет изменения в файле: с параметром --staged она возвращает файл из индекса в рабочую директорию, а без параметра — возвращает изменённый файл к исходному состоянию.

5. Как можно вернуть файл к состоянию, в котором он был в определённом коммите?

git revert <commit> <file>
git checkout <commit> <file>
git restore <commit> <file>
git back <commit> <file>

Подсказка:
Для возвращения файла к состоянию, в котором он был в определённом коммите, нужно воспользоваться командой git checkout <commit> <file>. Остальные перечисленные команды работать не будут.

6. Чем различаются команды git reset —mixed <commit> и git reset —soft <commit>?

Первая команда отменяет коммиты вплоть до указанного и возвращает все изменения в рабочую директорию, вторая — возвращает их в индекс
Первая команда отменяет коммиты вплоть до указанного и возвращает все изменения в индекс, вторая — в рабочую директорию
Первая команда отменяет указанный коммит и возвращает все изменения из него в рабочую директорию, вторая — возвращает их в индекс
Первая команда отменяет указанный коммит и возвращает все изменения из него в индекс, вторая — в рабочую директорию

Подсказка:
Смешанный режим сброса коммитов (git reset --mixed <commit>) отменяет все коммиты вплоть до указанного и возвращает изменения в рабочую директорию без добавления их в индекс, а мягкий (git reset --soft <commit>) возвращает их в индекс.

7. Какие изменения Git позволяет вносить в последний коммит произвольным образом?

Комментарий коммита
Содержимое коммита
Автор коммита
Хеш коммита
Дата и время коммита

Подсказка:
Git позволяет вносить изменения в комментарий и содержимое коммита. Поменять комментарий и содержимое коммита можно также с помощью "git commit --amend". При необходимости вы можете отменить последний коммит с помощью "git reset" и создать его снова, поменяв автора к конфигурации Git. При этом дата и время, а также хэш коммита устанавливается автоматически и не могут быть изменены произвольным образом.

8. Чем различаются следующие команды? git reset —merge <commit> и git merge —abort

Первая сбрасывает незакоммиченный (конфликтный) merge, а вторая — закоммиченный
Эти команды не отличаются, обе сбрасывают merge
Первая сбрасывает закоммиченный merge, а вторая — незакоммиченный (конфликтный)

9. Почему может не выполниться команда git branch -d <branch> при попытке удалить ненужную недавно созданную ветку?

Потому что название ветки не соответствует стандартам Git
Потому что коммиты этой ветки не влиты ни в какую другую ветку
Потому что такой команды не существует


Как можно отблагодарить:

  • Оформить удобную для вас подписку на Boosty.to
  • Разово поддержать через DonationAlerts
10130login-checkСистема контроля версий Git. Сравнение версий и отмена изменений.

Добавить комментарий