git撤销推送(push)至远端仓库的提交(commit)

简介: git撤销推送(push)至远端仓库的提交(commit)

前言

在使用 Git 开发管理源代码的时候,我们会遇到这种尴尬情况:刚刚提交和推送一个新的 commit,就发现有个小的 bug 需要 fix。而这个小的 bug 可能就是一行或者几行代码的事儿,在代码管理层面来说,不应作为一个新的 commit。

所以我们希望将刚才推送(push)至远端仓库的提交(commit)在保留原有修改的基础上,从远端仓库撤销提交。再将 bug 修复,一并作为新的 commit,重新提交和推送至远端仓库。

1 撤销本地仓库提交

(1) 输入命令,查看提交信息;

git log

b68b3ef6a7b64d8f9cbdd1ffe68fae60.png

可以看到有 3 次提交历史,我们的操作都是基于提交版本号,所以需要记录好 commit 版本号。

这里,假设我们当前的提交是 ①(1ae6528fc3ba06e3d23adbbcc20ab7281fa2a4f0),现在需要回退至提交 ②(47c31999a97a0c05c09c3872b22cbcda01efc432)。

(2) 输入命令,撤销本地提交;

git reset --soft 指定commit版本号

git reset --soft "版本号":重置至指定版本的提交。这里我们指定版本号为 ②,从而达到撤销 ①的目的。

参数 soft:保留当前工作区(代码和文件的更改),以便重新提交;

参数 hard:撤销相应工作区的修改,相当于彻底删除提交和代码的更改。

(3) 输入命令,查看本地分支提交;

git log



d7aa6d7366e14fe0814e3d7cf1994787.png

可以看到,我们本地分支只有 ② 和 ③ 的提交,① 已经被删除。

(4) 查看远端分支的提交;


6b9da73bff364c7a80af0eec16c80a4e.png

在远端仓库我们看到,还是有 3 次提交。① commit 并没有撤销。

2 撤销远端仓库提交

(1) 输入命令,撤销远端仓库提交;

git push origin stm32 --force

git push origin stm32 --force:强制推送当前版本号至远端分支。

我们当前版本号是 ②,强制推送至远端,以达到撤销版本 ① 的目的。

注意这里需要加参数 --force,否则会推送失败。

(2) 再次查看远端分支提交;


51f23de8a1d448ebbfb3e8973965a986.png

可以看到,① commit 已经删除,剩下 ② 和 ③。

3 重新提交至远端仓库

(1) 修复 bug,添加至暂存区;

1. // fix bug
2. git add .

(2) 重新提交;

git commit -m "Repair gpio declaration."

(3) 重新推送至远端分支;

git push origin stm32

0589324f95da41468d9fa357e8669647.png

(4) 查看远端分支提交;

当前远端分支有 3 次提交,但是 ① commit 的版本号已经变更了。

总结

以上就是撤销推送(push)至远端分支的提交(commit),保留上一次的代码修改,再次修复 bug 后,一并提交和推送至远端。


相关文章
|
4月前
|
安全 开发工具 git
git添加远程仓库报错To add an exception for this directory解决方案-优雅草卓伊凡
git添加远程仓库报错To add an exception for this directory解决方案-优雅草卓伊凡
527 5
git添加远程仓库报错To add an exception for this directory解决方案-优雅草卓伊凡
|
7月前
|
API 开发工具 git
使用git pull遇到Automatic merge failed; fix conflicts and then commit the result.解决方案卓伊凡
使用git pull遇到Automatic merge failed; fix conflicts and then commit the result.解决方案卓伊凡
416 0
使用git pull遇到Automatic merge failed; fix conflicts and then commit the result.解决方案卓伊凡
|
7月前
|
开发工具 git
使用Git下载指定版本或指定commit
使用Git下载指定版本或指定commit
|
6月前
|
开发工具 git 开发者
Git流程控制:远程仓库操作的实用指南
通过遵循这些步骤和策略,你将能够更有效地与远程仓库进行交互,确保代码变更的透明度和项目历史的干净。同时,良好的版本控制习惯可以减少潜在的冲突,并帮助保持代码库的整洁。在日常工作中应用这些实用的Git流程控制技巧将是非常有益的。
233 0
|
8月前
|
存储 人工智能 缓存
Git Commit规范:为什么有些公司要求变更行数限制?·优雅草卓伊凡
Git Commit规范:为什么有些公司要求变更行数限制?·优雅草卓伊凡
358 3
Git Commit规范:为什么有些公司要求变更行数限制?·优雅草卓伊凡
|
8月前
|
安全 Shell 开发工具
Windows下使用git配置gitee远程仓库
就在前几天因为一些原因,我的电脑重装了系统,然后再重新配置git的环境的时候就遇到了一些小问题。所以我决定自己写一篇文章,以便以后再配置git时,避免一些错误操作,而导致全网搜方法,找对的文章去找对应的解决方法。下面为了演示方便就拿gitee来演示,不拿GitHub了写文章了。
391 0
|
5月前
|
开发工具 git
Git版本控制工具合并分支merge命令操作流程
通过以上步聚焦于技术性和操作层面指南(guidance), 可以有效管理项目版本控制(version control), 并促进团队协作(collaboration).
1234 15
|
8月前
|
安全 开发工具 git
git的常用操作命令
git的常用操作命令
542 57
|
6月前
|
存储 缓存 开发工具
Git stash命令的详细使用说明及案例分析。
通过上述案例,我们看到stash命令能够在不丢失进度的情况下,帮助开发者临时切换开发上下文,这在处理多个任务或紧急bug时特别有用。正确使用Git stash可以大大提高开发的灵活性和效率。
2131 0