Git 删除远程仓库的某次提交记录

本文介绍如何使用Git撤销特定的提交记录,并提供了详细的步骤说明,包括切换目录、查看提交记录、重置到指定提交、暂存修改、强制推送及取消分支保护等操作。

1.cd 切换至 代码目录 ,右键–》git bash here

2.git log 查看提交 记录获取 commitId

3.git reset commitId 重置指定提交记录 id

4.git stash 暂存修改 (非必须)

5.git push --force 强制push
如果出现 remote: GitLab: You are not allowed to force push code to a protected branch on this project.则需要修改
如图:
在这里插入图片描述
最后点击 Unprotect即可。再次执行步骤5 ,成功。指定提交记录被删除。
注:删除某次提交记录后,记得恢复 Unprotect。

6.git stash pop 释放暂存的修改,开始修改代码 (非必须)

7.git add . -> git commit -m “massage” -> git push (非必须)

GitLab 仓库删除提交历史记录是一个敏感操作,通常不推荐执行,特别是在已经共享给其他开发者的远程分支上。如果确实需要删除所有提交历史并保留当前代码状态,可以通过创建一个新的孤立提交来实现此目标。 以下是一种安全的方法: 1. 首先,确保你处于主分支(或你希望清理的分支)上: ```bash git checkout main ``` 2. 创建一个孤立的新分支,这将不会包含任何先前的历史记录: ```bash git checkout --orphan new-branch-name ``` 3. 添加所有文件到新的分支中: ```bash git add -A ``` 4. 提交这些文件作为一个全新的快照: ```bash git commit -m "Initial commit on new history" ``` 5. 删除原来的分支,并将新创建的分支重命名为原分支名称: ```bash git branch -D main git branch -m main ``` 6. 最后,强制推送这个新分支到 GitLab 上的远程仓库,以替换原有的分支: ```bash git push -f origin main ``` 请谨慎使用 `git push -f` 命令,因为它会覆盖远程仓库中的分支,可能导致他人基于旧历史的工作出现问题[^1]。 此外,如果只是想修改最近的一些提交而不是完全清除整个历史,则可以考虑使用 `git rebase -i` 来编辑本地提交历史。但需要注意的是,在与他人协作的分支上执行交互式变基可能会导致混乱和合并冲突,因此应当避免在已推送到远程且被多人共享的提交上使用此类操作[^2]。 如果你正在处理的是一个项目发布流程,并且想要根据 Git 标签自动创建发布版本,那么你可以配置 `.gitlab-ci.yml` 文件中的 `release` 作业来自动化这一过程。例如,当推送一个新的标签时触发释放任务,并通过 `release-cli` 工具定义详细的发布信息[^3]。 ### 相关问题 1. 如何正确地撤销 Git 中的一系列提交? 2. 在 Git 中进行交互式变基时需要注意哪些事项? 3. 怎样利用 GitLab CI/CD 自动化创建软件发行版?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值