• 能够到这里下载安装Git: git-scm.com/download/wi…
  • Learn Git Branching游戏在这里:learngitbranching.js.org/?locale=zh_…

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