- 可以到这里下载安装
Git: git-scm.com/download/wi…- Learn Git Branching游戏在这里:learngitbranching.js.org/?locale=zh_…
Level 4-5 《Git Describe》
这一关使用git describe帮助你在提交历史中移动了多次以后找到方向,不仅在游戏里学习,你还可以在真实环境中进行实验。
游戏答案:
describe返回结果含义: 距离最近的tag_距离几次提交_g指定提交的哈希值
# 距离main最近的tag
git describe main
-------------------------------------
v0_2_gC2 # 最近的tag是v0_距离两次提交_gMAIN处的哈希值是C2
# 距离bugFix最近的tag
git describe bugFix
-------------------------------------
v1_2_gC6
# 距离v1最近的tag
git describe v1
-------------------------------------
v1 # 指定位置本身就是一个tag
# 距离c3最近的tag
git describe c3
-------------------------------------
v1
# 距离side最近的tag
git describe side
-------------------------------------
v1_1_gC4
# 做一次提交结束游戏
git commit
准备实验环境
下面命令完整CV到Windows cmd命令行窗口中执行:
# 准备一个空目录
mkdir level-4-5
cd level-4-5
# 初始化本地仓库,然后做两次提交
git init
echo 111>>a.txt
git add .
git commit -m "c0"
echo 222>>a.txt
git add .
git commit -m "c1"
# 创建side分支但不切换到该分支
git branch side
# 在master再做一次提交
echo 333>>a.txt
git add .
git commit -m "c2"
# 切换到上面创建的side分支,然后做一次提交
git checkout side
echo 444>>a.txt
git add .
git commit -m "c3"
# 创建bugFix分支但不切换到该分支
git branch bugFix
# 继续在side分支做一次提交
echo 555>>a.txt
git add .
git commit -m "c4"
# 切换到bugFix分支做两次提交
git checkout bugFix
echo 666>>a.txt
git add .
git commit -m "c5"
echo 777>>a.txt
git add .
git commit -m "c6"
# 查看提交树
git log --graph --pretty=oneline --all
下面要用到提交的ID:
# 使用c0提交的ID,创建tag v0
git tag v0 43dd
# 使用c3提交的ID,创建tag v1
git tag v1 0cbc
git log --graph --pretty=oneline --all
真实答案:
git describe master --tags
-------------------------------------
v0-2-g712fe5d # 最近的tag是v0_距离两次提交_gMASTER处的哈希值是712fe5d
git describe bugFix --tags
-------------------------------------
v1-2-g5b51b12
git describe v1 --tags
-------------------------------------
v1 # 指定位置本身就是一个tag
git describe 0cbc --tags
-------------------------------------
v1
git describe side --tags
-------------------------------------
v1-1-ge6d8936
git commit -m "c7"