mirror of
https://github.com/git-learning-game/oh-my-git.git
synced 2024-11-22 16:20:19 +01:00
45 lines
1.3 KiB
Text
45 lines
1.3 KiB
Text
title = Branches grow with you!
|
|
cards = checkout commit-auto branch branch-delete reset-hard
|
|
|
|
[description]
|
|
|
|
Note that there are two options to "travel to the end of a timeline":
|
|
|
|
First, you can directly travel to the commit, like we've done it before.
|
|
|
|
And second, you can travel to the branch label. In this case, when you make a new commit, the branch will grow with you, and still point at the end of the timeline, which is usually what we want!
|
|
|
|
Let's try both of these!
|
|
|
|
[setup]
|
|
|
|
echo "You wrap the birthday present, and grab your concert ticket." > you
|
|
git add .
|
|
git commit -m "Evening preparations"
|
|
echo "You go to the birthday party!" >> you
|
|
git add .
|
|
git commit -m "Go to the birthday"
|
|
git branch birthday
|
|
|
|
git checkout HEAD~1
|
|
echo "You go to the concert!" > you
|
|
git add .
|
|
git commit -m "Go to the concert"
|
|
git branch concert
|
|
|
|
git checkout HEAD~1
|
|
|
|
git branch -D main
|
|
|
|
[win]
|
|
|
|
# Travel directly to the last commit of the birthday timeline, make a change to 'you', and make a commit
|
|
for commit in $(git cat-file --batch-check='%(objectname) %(objecttype)' --batch-all-objects | grep 'commit$' | cut -f1 -d' '); do
|
|
if test $(git rev-parse $commit^) = $(git rev-parse birthday); then
|
|
return 0
|
|
fi
|
|
done
|
|
return 1
|
|
|
|
# Travel to the 'concert' branch, make a change to 'you', and a commit.
|
|
git show concert^ | grep "Go to the concert"
|