Git commit 提交代码

2019-04-01 0 By admin

git commit 主要是将暂存区里的改动给提交到本地的版本库。每次使用git commit 命令我们都会在本地版本库生成一个40位的哈希值,这个哈希值也叫commit-id,
commit-id在版本回退的时候是非常有用的,它相当于一个快照,可以在未来的任何时候通过与git reset的组合命令回退。

一、git commit -m “message”

这种是比较常见的用法,-m 参数表示可以直接输入后面的“message”,如果不加 -m参数,那么是不能直接输入message的,而是会调用一个编辑器一般是vim来让你输入这个message。

二、git commit -a -m “massage”

其他功能如-m参数,加的-a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git add添加到暂存区。
注意:新加的文件(即没有被git系统管理的文件)是不能被提交到本地仓库的。建议一般不要使用-a参数,正常的提交还是使用git add先将要改动的文件添加到暂存区,再用git commit 提交到本地版本库。

三、git commit –amend 修改上次提交的描述

当我们想要对上一次的提交进行修改时,我们可以使用git commit –amend命令。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 推送到远程。
方法2:leader不abandon代码,你回去之后,修改出问题的Java文件。
修改好之后,git add java 文件,并git commit –amend –no-edit。
最后 git push origin HEAD:refs/for/branches。
当我们想要对上一次的提交进行修改时,我们可以使用git commit –amend命令。

四、git rebase -i HEAD~n 修改上N次提交的描述

如果需要修改早于上次Commit 的 Commit 的描述等信息;则使用git commit --amend 命令是不行的。需要使用git rebase -i HEAD~n ;其中 N 标识要修改的记录在第几个 Commit 中。

1、修改之前的第三次Commit 信息

git rebase -i HEAD~3

2、确定要修改的Commit

在给出的 Commit 列表中,将要修改的Commit 信息前,把 pick 修改为 edit 。然后保存退出编辑框。

3、修改Commit 描述信息

使用 git commit --amend 命令;会发现这次要修改的 Commit 信息,属于上一步骤中,我们操作的 Commit。
在这里将 Commit 的描述信息改为我们想要的。

4、报错修改Commit 的记录

使用 git rebase --continue 命令,将这次修改的记录保存上。