前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >git 修改最后一次commitgit

git 修改最后一次commitgit

作者头像
艳龙
发布2021-12-16 17:28:13
6530
发布2021-12-16 17:28:13
举报
文章被收录于专栏:yanlongli_艳龙yanlongli_艳龙

在使用git协同工作时,偶然也会遇到commit错误的时候,针对最后一次commit错误的情况,应该如果修改处理呢?

先说结论

1,通过git commit --amend 命令 ,修改最后一次提交的commit 2,使用 git push origin -f branch 强制覆盖远程仓库。(-f 有风险,请谨慎使用,master 上不到万不得已千万别用)

操作实践

commit 只提交在本地仓库,未提交到远程仓库

这种场景解决起来比较容易,解决方法有如下两种:

  1. 修复错误代码后,发起一个新的commit
代码语言:javascript
复制
$  git commit -am "这是一个新的commit"

这种方式使用的应该是比较多,也是最简单的,不是本次介绍的重点。

  1. 修复错误代码后,使用commit --amend

首先使用 commit log ,查看需要修改到最后一次提交

代码语言:javascript
复制
 $ git log
commit 34645b952f2656093e47a959594acb8cd714cf24 (HEAD -> master)
Author: *** <*******>
Date:   Thu Oct 17 20:23:57 2019 +0800

    提交测试commit

之后修改错误代码,把修改提交到暂存区

代码语言:javascript
复制
$ git add .

发起commit修改

代码语言:javascript
复制
$  git commit --amend 

会进入如下的界面

代码语言:javascript
复制
提交测试commit
//这里是新添加的,修改后的提交信息
oooooooooooooooo
  
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date:      Thu Oct 17 20:23:57 2019 +0800
#
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
#
# Changes to be committed:
#       modified:   app/src/main/java/com/*****/activity/YLDemoMainActivity.java
#
~                                                                                                                          
~                                                                                                                          
~                                                                                                                          
~                                                                                                                          
~                                                                                                                          
~                                                                                                                          
~                                                                                                                          
                                                                                                                     
"~/Documents/workspace/android/demo/YLDemo/.git/COMMIT_EDITMSG" 14L, 453C

输入修改后的提交信息,wq退出就OK了。

再次使用使用 git log查看,结果如下: 说明最后一次的commit提交已经被我们修改好了

代码语言:javascript
复制
yanlongli@ ~/Documents/workspace/android/demo/YLDemo (master) $ git log
commit 34645b952f2656093e47a959594acb8cd714cf24 (HEAD -> master)
Author: *** <*******>
Date:   Thu Oct 17 20:23:57 2019 +0800

    提交测试commit

commit 已经提交到远程仓库

commit 已经被提交到远程仓库后,需要修改那就只能使用commit --amend命令了。

  1. 首先需要使用commit --amend 修改本地仓库的最后一次提交。 (具体如何操作,可以参考上一节)
  2. 需要把本地的修改push 到远程仓库
代码语言:javascript
复制
$  git push origin -f master

这样最后一次commit的修改就应用到远程仓库了. tips: 1,其中 -f--force 的缩写 2,master 分支不建议使用 -f 参数,因为团队开发很容易删除其他同事的提交。(可以在分支上使用)

问题: 如果发现提交错误的commit 不是最后一次,而是在倒数第二次的位置上,应该如果处理呢?

END!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/10/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 先说结论
  • 操作实践
  • 一 commit 只提交在本地仓库,未提交到远程仓库
  • 二 commit 已经提交到远程仓库
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档