git commit的--amend选项

git commit --amend常常用来修改某个branch上最顶端的commit,大多数情况下,这个命令给人的感觉是用新的commit替换了原来的commit。git commit --amend与下面的语句等价:

git reset --soft HEAD^  //将branch的头指针向前移动一个commit,--soft选项使得index和workspace tree的内容保持移动之前不变

...do something...

git commit -c ORIG_HEAD  //-c选项使得新提交的log message重用ORIG_HEAD指向的commit使用的log message,但允许用户编辑

举个例子,假设master branch上的提交历史如下图:

运行git commit --amend时,过程如下:

图中有阴影的commit就是master指针移动之前指向的commit,当git commit --amend运行结束后,这时因为没有任何其他branch指向有阴影的commit,该commit会被废弃。但是如果是下面的情况:

运行git commit --amend的过程如下:

上图中加阴影的commit仍然是master指针移动之前指向的commit,但是由于该commit还被alt branch引用,因此这个commit不会被废弃。

时间: 2024-10-09 01:08:07

git commit的--amend选项的相关文章

git commit 合并

有时commit太多,而且可能一个commit只是提交一个小bug,那么合并commit势在必行.有两种方法:一是在提交最后一个修改的commit使用参数,这时之前的一个commit将会合并到这个即将提交的commit中来:git commit -a --amend -m "my message here"如果之前有一个提交,并且信息为: git commit -a -m "my last commit message" 则这个commit message将不存在.

git commit --amend用法

提交信息很长时间内会一直保留在你的代码库(code base)中,所以你肯定希望通过这个信息正确地了解代码修改情况. 下面这个命令可以让你编辑最近一次的提交信息,但是你必须确保没有对当前的代码库(working copy)做修改,否则这些修改也会随之一起提交. $ git commit --amend -m ”YOUR-NEW-COMMIT-MESSAGE” 假如你已经将代码提交(git commit)推送(git push)到了远程分支,那么你需要通过下面的命令强制推送这次的代码提交. $ g

git commit --amend 修改还未提交到远程分支的 commit 信息

有时候用 git commit -m 提交时,可能没写好或者误操作导致提交的信息不合适,但你还没有 push 到远程分支时, 可以使用 git commit --amend 修改上一次的提交信息. 操作示例 如下: git commit --amend 后会出现编辑界面,如下 可以在最上面红框的地方,修改要提交的信息,然后按Ctrl + o (WriteOut),如下 然后按回车保存,回到上一个界面后按 Ctrl + x 退出即可. 最后,你就可以放心的 push 到远程分支啦 ^.^

git commit --amend用法(摘抄)

适用场景: 比方说,你的代码已经提交到git库,leader审核的时候发现有个Java文件代码有点问题,于是让你修改,通常有2种方法: 方法1:leader 将你提交的所有代码 abandon掉,然后你回去 通过git reset …将代码回退到你代码提交之前的版本,然后你修改出问题的Java文件,然后 git add xx.java xxx.java -s -m “Porject : 1.修改bug…” 最后通过 git push origin HEAD:refs/for/branches 方

三十五、git commit简介

翻译整理自: http://web.mit.edu/~mkgray/project/silk/root/afs/sipb/project/git/git-doc/git-commit.html 在用git来进行版本控制时,我需要执行git commit命令,将索引内容添加到仓库中. 示例1: git commit  -m "提交的描述信息" 如果我们这里不用-m参数的话,git将调到一个文本编译器(通常是vim)来让你输入提交的描述信息 可能一天下来,你对工作树中的许多文档都进行了更新

git commit -a -m

在用git来进行版本控制时,我需要执行git commit命令,将索引内容添加到仓库中. 示例1: git commit  -m "提交的描述信息" 如果我们这里不用-m参数的话,git将调到一个文本编译器(通常是vim)来让你输入提交的描述信息 可能一天下来,你对工作树中的许多文档都进行了更新(文档添加.修改.删除),但是我忘记了它们的名字,此时若将所做的全部更新添加到索引中,比较轻省的做法就是: git commit -a -m "提交的描述信息" git co

git commit 之后,撤销操作

搬运自:  git撤销操作 更多操作参见原地址. 修改最后一次提交 有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了.想要撤消刚才的提交操作,可以使用 --amend 选项重新提交: git commit --amend 此命令将使用当前的暂存区域快照提交.如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会重新编辑提交说明,但将要提交的文件快照和之前的一样. 启动文本编辑器后,会看到上次提交时的说明,编辑它确认没问题后保存退出,就会使用新的提交说明覆盖刚才失误的提交.

如何把apk编译时间和最后次git commit的sha值,写入到app中

需求背景:我们修复Bug的时候,频繁提交APK包,导致测试同学搞不清哪个包才是最新的 比如一个版本3.0.1,我们可能后续基于这个版本陆续提交了好几个修复包 同时,如果服务端ip地址能在界面上配置的话,更好了 以上都是基于debug模式下的,线上版本不会出现这些选项 思路:git每次提交commit的时候,都会创建一个唯一的sha串,我们拿这个作为内部版本号. 先给上最终效果图 那么如何在gradle编译的时候,就把这些信息写入到app中呢 关键字 BuildConfig类. 在build.gr

如何修改Git commit的信息

原文地址: http://xiguada.org/change-git-commit-message Git cimmit信息push后,如何修改,amend可以修改最后一次commit信息,但对于历史提交信息,需要使用rebase命令. 1 比如要修改的commit是倒数第三条,使用下述命令: git rebase -i HEAD~3 2 把pick改为edit 3 然后 :wq 出现如下信息: 4 执行 git commit --amend 修改commit信息 5 退出保存 :wq 6 执