Git闯关游戏:Learn Git Branching Level 4-2 提交技巧#1

235 阅读1分钟



Level 4-2 《提交技巧#1》

image.png

这一关使用rebase -i复制分支,commit --amend修改提交,不仅在游戏里学习,你还可以在真实环境中进行实验。



游戏答案:

# 用交互式rebase交换c2和c3提交的顺序
git rebase -i HEAD~2

image.png

# 修改交换到头部的c2分支
git commit --amend

# 用交互式rebase,再次交换c2和c3提交的顺序
git rebase -i HEAD~2

image.png


# 将main移动到当前位置
git branch -f main



准备实验环境

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

# 准备一个空目录
mkdir level-4-2
cd level-4-2

# 初始化本地仓库并做两次提交
git init

echo 111>>a.txt
git add .
git commit -m "c0"

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

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

# 添加一个模拟的图片文件并提交
echo Fake Image>>30x30.png
git add .
git commit -m "c2"

# 新建并切换到caption分支,然后做一次提交
git checkout -b caption
echo 333>>a.txt
git add .
git commit -m "c3"

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

image.png



真实答案:

# 默认编辑器设置为记事本
set GIT_EDITOR=notepad

# 交互式rebase,在弹出的记事本中按下图交换c2和c3的顺序
git rebase -i "HEAD~2"

image.png

# 模拟修改图片的分辨率
echo Fake Image>120x120.png
del 30x30.png

git add .
# 直接在c2提交上进行修改
git commit --amend --no-edit

# 再执行交互式rebase,将c2和c3顺序再交换回去,修改完后保存并退出
git rebase -i "HEAD~2"

image.png

# master分支移动到当前位置
git branch -f master

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

image.png