- 能够到这里下载安装
Git
: git-scm.com/download/wi…- Learn Git Branching游戏在这里:learngitbranching.js.org/?locale=zh_…
Level 3-1 《Git Cherry-pick》
这一关运用cherry-pick命令来移动提交,不仅在游戏里学习,你还能够在真实环境中进行试验。
游戏答案:
# 按次序将c3,c4,c7提交,仿制到当时main分支下
git cherry-pick c3 c4 c7
预备试验环境
# 预备一个空目录
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
真实答案:
首要找到提交信息为 c3、c4、c7的三次提交,后边需求运用这三个提交的ID:
git log --graph --pretty=oneline --all
履行cherry-pick
仿制三个提交到master
分支:
# 将c3,c4,c7仿制到master分支,这里要运用三个提交的ID
git cherry-pick d2fa cf41 ec07
履行后出现提示,这一步只仿制了c3
提交,由于有文件冲突,需求解决冲突后才能持续仿制c4
和c7
提交。
根据提示,需求手动批改文件后,再增加并提交文件:
# 增加并提交文件
git add .
git commit -m "c3'"
检查库房状况:
git status
根据提示,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