- 可以到这里下载安装
Git: git-scm.com/download/wi…- Learn Git Branching游戏在这里:learngitbranching.js.org/?locale=zh_…
Level 2-4 《撤销变更(reset和revert)》
这一关分别使用reset和revert命令来撤销变更,不仅在游戏里学习,你还可以在真实环境中进行实验。
游戏答案:
# 撤销local分支的最新提交,将local重置到c1提交位置
git reset HEAD~1
# 切换到pushed分支
git checkout pushed
# 将pushed分支的上一次提交c1复制到一个新建的提交c2'
git revert HEAD
准备实验环境
下面命令完整CV到Windows cmd命令行窗口中执行:
# 准备一个空目录
mkdir level-2-4
cd level-2-4
# 初始化本地仓库
git init
# 在master分支提交两次
echo 111>>a.txt
git add .
git commit -m "c0"
echo 222>>a.txt
git add .
git commit -m "c1"
# 创建并切换到pushed分支
git checkout -b pushed
# 在pushed分支提交一次
echo 333>>a.txt
git add .
git commit -m "c2"
# 切换到master分支
git checkout master
# 创建并切换到分支local
git checkout -b local
# 在local分支提交一次
echo 444>>a.txt
git add .
git commit -m "c3"
# 查看提交树
git log --graph --pretty=oneline --all
真实答案:
下面命令完整CV到Windows cmd命令行窗口中执行:
git reset "HEAD~1" --hard
git checkout pushed
# 将git提交信息编辑器设置为notepad记事本
set GIT_EDITOR=notepad
git revert HEAD
revert会添加一个新的提交,它的状态与HEAD的上一个提交状态一致,创建这个新的提交时需要提供提交信息。
在弹出的记事本中,将提交信息修改为c2',然后保存、关闭记事本:
记事本关闭后,git会继续完成revert操作,最后再查看提交记录:
git log --graph --pretty=oneline --all