Тестирование с другими ветками
На этом этапе мы создадим новую ветку и сделаем коммит в ней, чтобы увидеть, как работает команда git branch --contains
, когда коммит находится только в одной ветке. Это поможет укрепить ваше понимание того, как Git отслеживает коммиты в разных линиях разработки.
Сначала создадим новую ветку с именем feature-branch
. Убедитесь, что вы находитесь в директории ~/project/my-time-machine
.
cd ~/project/my-time-machine
git branch feature-branch
Теперь переключимся на нашу новую ветку:
git checkout feature-branch
Вы должны увидеть вывод, указывающий, что вы переключились на новую ветку:
Switched to branch 'feature-branch'
Сделаем новый коммит в ветке feature-branch
.
echo "Adding a feature" >> feature.txt
git add feature.txt
git commit -m "Add a new feature file"
Теперь получим хэш этого нового коммита с помощью команды git log --oneline
:
git log --oneline
В выводе вы увидите новый коммит сверху, за которым следуют предыдущие коммиты. Скопируйте хэш коммита "Add a new feature file".
Теперь используем git branch --contains
с хэшем коммита "Add a new feature file". Замените [feature_commit_hash]
на фактический хэш, который вы скопировали:
git branch --contains [feature_commit_hash]
Вывод должен показать только * feature-branch
. Это потому, что этот конкретный коммит был сделан после создания и переключения на ветку feature-branch
, поэтому он существует только в истории этой ветки.
Теперь попробуем использовать git branch --contains
с хэшем самого первого коммита ("Send a message to the future") еще раз. Замените [first_commit_hash]
на хэш, который вы использовали на предыдущем этапе:
git branch --contains [first_commit_hash]
На этот раз вывод должен показать как feature-branch
, так и * master
. Это потому, что ветка feature-branch
была создана из ветки master
, поэтому она содержит все коммиты, которые были в master
в то время, включая первый коммит.
Это демонстрирует, как команда git branch --contains
может помочь вам понять взаимосвязь между ветками и коммитами, которые они содержат.