GIT撤回已push的提交/合并已push的提交

在开发改BUG时,多次PUSH可合并为一次提交。先将最新代码本地保存,选择要回滚的提交并执行回滚操作,使代码恢复到对应状态,再用保存的最新代码覆盖当前代码,最后执行commit和Force push。

在开发中,有时候在改BUG的时候,会多次修改,然后PUSH到远程上,最后多次的PUSH,我们可以选择合并到一次提交上

首先把最新版本的代码,本地保存一下(复制到其他编辑器上),然后选择要回滚到的那一次提交,执行

git reset --hard commit序列号

这时候代码就恢复到那次commit的状态,把刚刚保存的最新代码,覆盖到现在的代码上。
执行commit,Force push 在这里插入图片描述
或者

git push dev HEAD --force
撤回已经推送到 Gerrit 的提交,通常有以下几种方式,具体取决于该提交是否已经被审核通过(submit): ### 1. 撤销未被提交(submit)的更改 如果提交已经被推送到 Gerrit,但尚未被审核人员批准并提交到主仓库,则可以通过以下方式撤回: - **通过 Gerrit Web 界面撤回**: - 登录 Gerrit 的 Web 界面。 - 找到对应的更改(Change)。 - 点击“**Abandon**”按钮,这将标记该更改被放弃,不再参与审核流程[^4]。 - **通过命令行撤销推送**: - 如果更改尚未被评论或审核,也可以直接在本地删除对应的分支或提交,并强制推送(不推荐,需谨慎操作)。 ### 2. 撤销已被提交(submit)的更改 如果更改已经被审核并通过,即已经合并到目标分支中,那么撤回操作将更加复杂: - **使用 `git revert` 撤销更改**: - 在本地执行 `git revert` 命令来创建一个新的提交,用于撤销之前已提交的更改。 - 推送新的提交到 Gerrit 进行审核。 - 示例命令: ```bash git revert <commit-hash> git add -A git commit -m "Revert <commit-hash>" git push origin HEAD:refs/for/<branch-name> ``` - **强制删除已提交的更改(不推荐)**: - 如果有权限,可以通过 `git push --force` 强制回退远程分支,但这会破坏版本历史,影响其他开发者,因此需谨慎使用。 ### 3. 替换或修改已推送的更改 如果只是希望修改已推送的更改(例如修复提交信息或代码内容),可以使用以下方式: - **修改提交后重新推送**: - 使用 `git commit --amend` 修改最后一次提交。 - 重新推送更改到 Gerrit,Gerrit 会识别为同一更改并更新其内容。 ```bash git commit --amend git push origin HEAD:refs/for/<branch-name> ``` - **确保提交信息中包含 Change-Id**: - 如果推送时提示 `missing Change-Id`,请确保 `.git/hooks/commit-msg` 钩子已正确安装,以便自动生成 `Change-Id`[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值