- 可以到这里下载安装
Git: git-scm.com/download/wi…- Learn Git Branching游戏在这里:learngitbranching.js.org/?locale=zh_…
Level 4-1 《只取一个提交记录》
这一关使用rebase -i或者cherry-pick命令来移动一个提交,不仅在游戏里学习,你还可以在真实环境中进行实验。
游戏答案:
# 切换到main分支
git checkout main
# 复制bugFix到当前main分支下
git cherry-pick bugFix
准备实验环境
下面命令完整CV到Windows cmd命令行窗口中执行:
# 准备一个空目录
mkdir level-4-1
cd level-4-1
# 初始化本地仓库
git init
# 在master分支做两次提交
echo 111>>a.txt
git add .
git commit -m "c0"
echo 222>>a.txt
git add .
git commit -m "c1"
# 创建debug分支并切换到该分支,然后做一次提交
git checkout -b debug
echo 333>>a.txt
git add .
git commit -m "c2"
# 创建printf分支并切换到该分支,然后做一次提交
git checkout -b printf
echo 444>>a.txt
git add .
git commit -m "c3"
# 创建bugFix分支并切换到该分支,然后做一次提交
git checkout -b bugFix
echo 555>>a.txt
git add .
git commit -m "c4"
# 查看提交树
git log --graph --pretty=oneline --all
真实答案:
# 切换到master分支
git checkout master
# 复制bugFix到当前master分支下
git cherry-pick bugFix
这时会提示文件冲突:
按提示,先修正冲突文件然后再提交:
# 先手动修正a.txt后再继续
# 文件添加到暂存区,然后提交
git add .
git commit -m "c4'"
# 查看提交树
git log --graph --pretty=oneline --all