likes
comments
collection
share

Git闯关游戏:Learn Git Branching Level 3-1 Git Cherry-pick

作者站长头像
站长
· 阅读数 34

Level 3-1 《Git Cherry-pick》

Git闯关游戏:Learn Git Branching Level 3-1 Git Cherry-pick

这一关使用cherry-pick命令来移动提交,不仅在游戏里学习,你还可以在真实环境中进行实验。

游戏答案:

# 按顺序将c3,c4,c7提交,复制到当前main分支下
git cherry-pick c3 c4 c7

准备实验环境

下面命令完整CV到Windows cmd命令行窗口中执行:

# 准备一个空目录
mkdir level-3-1
cd level-3-1

# 初始化本地仓库
git init

# 在master分支做两次提交
echo 111>>a.txt
git add .
git commit -m "c0"

echo 222>>a.txt
git add .
git commit -m "c1"

# 创建三个分支,但不切换分支
git branch bugFix
git branch side
git branch another

# 现在切换到bugFix分支做两次提交
git checkout bugFix
echo 333>>a.txt
git add .
git commit -m "c2"
echo 444>>a.txt
git add .
git commit -m "c3"

# 再切换到side分支做两次提交
git checkout side
echo 555>>a.txt
git add .
git commit -m "c4"
echo 666>>a.txt
git add .
git commit -m "c5"

# 然后切换到another分支做两次提交
git checkout another
echo 777>>a.txt
git add .
git commit -m "c6"
echo 888>>a.txt
git add .
git commit -m "c7"

# 切换回到master分支
git checkout master

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

Git闯关游戏:Learn Git Branching Level 3-1 Git Cherry-pick

真实答案:

首先找到提交信息为 c3、c4、c7的三次提交,后面需要使用这三个提交的ID:

git log --graph --pretty=oneline --all

Git闯关游戏:Learn Git Branching Level 3-1 Git Cherry-pick

执行cherry-pick复制三个提交到master分支:

# 将c3,c4,c7复制到master分支,这里要使用三个提交的ID
git cherry-pick d2fa cf41 ec07

执行后出现提示,这一步只复制了c3提交,因为有文件冲突,需要解决冲突后才能继续复制c4c7提交。

Git闯关游戏:Learn Git Branching Level 3-1 Git Cherry-pick

根据提示,需要手动修正文件后,再添加并提交文件:

Git闯关游戏:Learn Git Branching Level 3-1 Git Cherry-pick

# 添加并提交文件
git add .
git commit -m "c3'"

查看仓库状态:

git status

Git闯关游戏:Learn Git Branching Level 3-1 Git Cherry-pick

根据提示,cherry-pick仍然在执行过程中,我们需要执行git cherry-pick --continue来继续复制c4提交:

# 继续下一步,复制c4提交
git cherry-pick --continue

与上一步相同,也需要解决冲突(需要先手动修正a.txt)后才能再继续:


# 修正a.txt文件后,再添加并提交文件:

git add .
git commit -m "c4'"

相同的,再继续复制c7提交:

git cherry-pick --continue

# 修正文件后,再添加并提交文件:

git add .
git commit -m "c7'"

最后,查看提交记录和提交状态:

git log --graph --pretty=oneline --all

Git闯关游戏:Learn Git Branching Level 3-1 Git Cherry-pick

转载自:https://juejin.cn/post/7128600147428114446
评论
请登录