Git闯关游戏:Learn Git Branching Level 1-3 Git Merge合并分支

250 阅读1分钟



Level 1-3 《Git Merge合并分支》

image.png

游戏答案:

# 新建bugFix分支,并切换到这个分支
git checkout -b bugFix

# 在bugFix分支上提交一次
git commit

# 切换到main分支
git checkout main

# 在main分支提交一次
git commit

# 将bugFix分支合并到当前main分支
git merge bugFix



准备实验环境

# 新建一个空文件夹
mkdir level-1-3
cd level-1-3

# 初始化本地仓库
git init

# 写一个文件并提交一次
echo 111>>a.txt
git add .
git commit -m "c0"

# 再提交一次
echo 222>>a.txt
git add .
git commit -m "c1"

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

image.png



真实答案:

# 新建并切换到bugFix分支
git checkout -b bugFix

# 在bugFix分支修改文件,并提交一次
echo 333>>a.txt
git add a.txt
git commit -m "c2"

# 切换到master分支
git checkout master

# 在master分支修改文件,并提交一次
echo 444>>a.txt
git add a.txt
git commit -m "c3"

# 将bugFix分支合并到当前master分支,生成一个新的提交,填写提交信息"m4"
git merge bugFix -m "m4"



merge时出现提示:

image.png

自动合并了a.txt
a.txt中存在合并冲突,
自动合并失败,需要修正冲突然后再提交。



查看仓库状态:

git status

image.png

在主分支上存在未完成的合并操作。
(修正冲突后执行“git commit”)
(用“git merge --abort”终止合并)



使用文本编辑器修正a.txt:

image.png



修正文件后再提交:

# 文件添加到暂存区
git add a.txt

# 执行提交,使用之前merge时指定的提交信息“m4”,不再重新编辑提交信息
git commit --no-edit

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

image.png



这时再查看仓库状态:

git status

image.png