工作中可能会遇到开发过的功能代码不在下一个版本计划里,或者别的类似的需要把某个分支上已经提交的代码删除掉。可以使用git命令操作,避免人工操作哪些文件需要提交、哪些文件需要删除!
开发中每个提交最好对应一个完整的功能,这样对项目的管理很友好。也可以将
git
和jire
强制关联起来,以实现一次提交对应一个需求。
主要通过 rebase
命令实现
具体步骤如下:
1、查看提交记录
sh
git log --oneline
sh
837534b (HEAD -> master, github/master, gitee/master) feat: 测试4
058eefb feat: 测试3
9b6619d feat: 测试2
a3d6ef0 feat: 测试1
2、交互式 rebase
使用Git的交互式rebase功能,我们可以删除中间提交。rebase是一种改变提交历史的方式。执行rebase时,我们可以编辑、删除和合并提交。
修改已经提交过的
commit message
信息也是通过rebase
变基操作,把 【pick】修改成【edit】
要开始交互式rebase,我们可以使用以下命令:
sh
git rebase -i <commitID>
假如要删除 【测试2】【测试3】的提交记录,我们可以把 commitID
写成【测试1】的 a3d6ef0
sh
git rebase -i a3d6ef0
在交互式界面中,每个提交之前都有一个关键字"pick"。要删除某个提交,我们只需要将关键字改为"drop"。
保存并关闭交互式界面后,Git会执行rebase,删除我们指定的提交。
再次运行 git log --oneline
查看记录
发现【测试2】【测试3】的提交记录已经没了
3、强制推送
由于我们改变了提交历史,我们需要使用强制推送(force push)来更新远程仓库。
使用以下命令进行强制推送:
sh
git push -f origin <branch>
我是 甜点cc ,个人网站: home.i-xiao.space/vuepress-st...
实干是实干者的通行证!
公众号:【看见另一种可能】