请教 git 里怎么删除记录

magic3584 · 2025-9-1 10:06:50 · 1630 次点击

请大佬指点:

分支情况如下图:

  1. 1 创建新的 test 分支
  2. test 分支上分别进行了 2 3 提交
  3. merge test to release 的时候产生了 4提交
  4. 删除了 test 分支

我现在想回退到 2来删除 3 4记录,是否能做到?如果可以的话,应该在哪个分支执行什么 git 命令。

举报· 1630 次点击
登录 注册 站外分享
14 条回复  
baiyi 小成 2025-9-1 10:09:15
git reflog 查看记录 git reset 重置当前状态
avenger 初学 2025-9-1 10:09:17
去看 git rebase 的文档
I2E 小成 2025-9-1 10:13:08
git reset --hard 2 的 commit id
cc666 小成 2025-9-1 10:13:16
这种问题可以直接问 AI AI 大概会问你你到底想干什么
magic3584 楼主 初学 2025-9-1 10:14:25
@avenger #2 git rebase 可以把 release 上从 4 回退到 1 ,但是由于我删除了 test 分支,所以不知道怎么删除 3
yaocf 初学 2025-9-1 10:14:37
前提:只有你一个人,或者,你可以说动协作开发的其他成员进行强制拉取。 首先,请保持工作区干净 即: `git status`提示当前无修改 步骤一 向前软重置一步。重复执行,直到退到记录 1 git reset --soft HEAD^1 或者是直接一步到位退到记录 1 git reset --soft ${记录 1 的 commit id} 步骤二 提交当前工作区 git commit ${可以填写记录 2 的提交信息,也可以顺带标注一下回退原因} 步骤三 强制 push ,覆盖远端 git push --force 步骤四 如果有协作开发的同学,揖让让他们拉一下新的远端再接着开发。
yaocf 初学 2025-9-1 10:16:14
@yaocf 这个前提只针对 test 分支。也就是如果只有你一个人在 test 分支,就无所谓。
magic3584 楼主 初学 2025-9-1 10:16:44
@cc666 #4 问了 claude `I have a git branch named `release`. I create a new branch `test` from `commit1`, then create `commit2` and `commit3`. Then back to `release`, merge `test` to `release` with a new `commit4`. Then deleted the `test` branch. Now I wanna : 1. remove the `commit3` and `commit4` records 2. check out new branch on `commit2` to prepare merge 3. reset branch `release` to `commit1` think harder 4. show which branch is when running git commands` 但是它给的答案达不到我想要的效果
magic3584 楼主 初学 2025-9-1 10:18:29
@yaocf #7 这个 test 是我本地分支没有提交过远端,而且我本地也已经删除了这个分支。这是我麻烦的点。
12下一页
返回顶部