文章目录

  • 本地的删除
  • 远程同步
  • 修改上次提交
  • 更多详情阅读


本地的删除

例如我的提交历史如下

commit 58211e7a5da5e74171e90d8b90b2f00881a48d3a
Author: test <test@36nu.com>
Date:   Fri Sep 22 20:55:38 2017 +0800
 
    add d.txt
 
commit 0fb295fe0e0276f0c81df61c4fd853b7a000bb5c
Author: test <test@36nu.com>
Date:   Fri Sep 22 20:32:45 2017 +0800
 
    add c.txt
 
commit 7753f40d892a8e0d14176a42f6e12ae0179a3210
Author: test <test@36nu.com>
Date:   Fri Sep 22 20:31:39 2017 +0800
 
    init

假如要删除备注为add c.txt commit为0fb295fe0e0276f0c81df61c4fd853b7a000bb5c的这次提交

  1. 首先找到此次提交之前的一次提交的commit7753f40d892a8e0d14176a42f6e12ae0179a3210
  2. 执行如下命令
git rebase -i  7753f40

弹出如下界面(原图丢失,下图类似)

git删除comimit提交的记录_bash


3. 将0fb295f这一行前面的pick改为drop,然后按照提示保存退出

4. 至此已经删除了指定的commit,可以使用git log查看下

远程同步

git push --force

修改上次提交

git commit --amend  # 进入交互模式修改
git commit --amend -m 'new commit message' # 直接修改上一次 commit

有时你提交过代码之后,发现一个地方改错了,你下次提交时不想保留上一次的记录;或者你上一次的commit message的描述有误,这时候你可以使用接下来的这个命令:git commit --amend。

git log之后,可以看到你之前提交过的git历史:

git删除comimit提交的记录_bash_02


接下来,在bash里输入wq退出log状态,执行:

git commit --amend

这时bash里会出现以下内容:

git删除comimit提交的记录_输入模式_03


其中,second commit 是你上次提交的描述,下面是一下说明信息,有告诉你上次提交的文件信息等等,可忽略。接下来你要是想修改描述信息的话。直接键入:i,此时进入了输入模式,变成这样子:

git删除comimit提交的记录_bash_04


可用键盘上下键转到描述所在的那一行,然后进行修改:

git删除comimit提交的记录_git_05


修改完成后,按下 Esc键退出编辑模式,在键入 :wq 回车退出并保存修改,完成提交。这是你再git log 看一下提交日志:

git删除comimit提交的记录_git_06


已经修改了提交描述信息,且原来的git版本没有了~喜大普奔!!你完成

更多详情阅读

整理 commit - amend & rebase