今作此文,寻章摘句,权抛砖引玉,遗笑方家处,敬请见谅
1.搭建环境
- 模拟一个场景
- 打一个 tag 玩(真的是玩)
2.模拟操作
- 现在我们有四个commit 一个tag,并且readme.txt内容如上图所示,我们知道tag标签所对应的readme.txt的内容应该为 “第二次提交” 这个字符串 接下来我们对其进行修改
1. 我们先查看这个标签对应的内容
2. 切换到master分支,我们通过rebase -i 的方式对其进行修改
3.我们使用edit
(缩写e) 来对这个commit进行编辑,对于其他的commit我们将其pick
(捡出) wq保存退出
4. 现在我们要开始修改这一次提交了,首先通过 git status
命令查看状态 git status
一定要多用
5. 我们将 readme.txt 中的 ““第二次提交”” 字符串 修改为 "fix 第二次提交 通过rebase -i " wq 保存退出 通过 git status
查看状态
6. 我们将这次修改加入到暂存区并且通过 git status
查看状态
6. 现在我们已经对这次修改满意了 我们应该回到 我们当前工作的commit上了 rebase之前的HEAD,在此之前我们需要根据提示 处理一些冲突,首先我们通过 git commit --amend
修改了一下 commit的msg当然也可以不修改
7. 工作树现在是干净的了我们现在可以根据提示进行 git rebase --continue
了
8. 执行了命令之后发现产生冲突了 这里很好理解 就好比你穿越到了"过去"改变了历史 那么"未来"肯定会变啊 (😁)
解决冲突 解决之后记得 git status
查看状态 与 git rebase --continue
继续rebase
9. 接下来解决冲突大同小异就不一一列举了 我们直接跳到最后一步 可以看到历史已经被改变了 达到了我们我们想要的结果
总结
- 要经常用
git status
命令查看状态 - 要学会看 git 的强大的提示功能
- 这只是一个示例,在团队协作中切忌不要乱修改历史否则后果自负
番外
- 其实一开始打的tag 还是存在的我们还可以找到他