Git闯关游戏:Learn Git Branching Level 4-1 只取一个提交记录

447 阅读1分钟



Level 4-1 《只取一个提交记录》

image.png

这一关使用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

image.png



真实答案:

# 切换到master分支
git checkout master

# 复制bugFix到当前master分支下
git cherry-pick bugFix

这时会提示文件冲突:

image.png

按提示,先修正冲突文件然后再提交:


# 先手动修正a.txt后再继续

# 文件添加到暂存区,然后提交
git add .
git commit -m "c4'"

# 查看提交树
git log --graph --pretty=oneline --all

image.png