- 可以到这里下载安装
Git
: git-scm.com/download/wi…- Learn Git Branching游戏在这里:learngitbranching.js.org/?locale=zh_…
Level 4-2 《提交技巧#1》
这一关使用rebase -i
复制分支,commit --amend
修改提交,不仅在游戏里学习,你还可以在真实环境中进行实验。
游戏答案:
# 用交互式rebase交换c2和c3提交的顺序
git rebase -i HEAD~2
# 修改交换到头部的c2分支
git commit --amend
# 用交互式rebase,再次交换c2和c3提交的顺序
git rebase -i HEAD~2
# 将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
真实答案:
# 默认编辑器设置为记事本
set GIT_EDITOR=notepad
# 交互式rebase,在弹出的记事本中按下图交换c2和c3的顺序
git rebase -i "HEAD~2"
# 模拟修改图片的分辨率
echo Fake Image>120x120.png
del 30x30.png
git add .
# 直接在c2提交上进行修改
git commit --amend --no-edit
# 再执行交互式rebase,将c2和c3顺序再交换回去,修改完后保存并退出
git rebase -i "HEAD~2"
# master分支移动到当前位置
git branch -f master
# 查看提交树
git log --graph --pretty=oneline --all