git commit 主要是将暂存区里的改动提交到本地的版本库。每次使用git commit 命令我们都会在本地版本库生成一个40位的哈希值,这个哈希值也叫commit-id。
commit-id在版本回退的时候是非常有用的,它相当于一个快照,可以在未来的任何时候通过与git reset命令组合回到这里。
目录
1. git commit -m “message”
-m
参数表示可以直接输入后面的 message
,如果不加 -m
参数,那么是不能直接输入 message
的,而是会调用一个编辑器(一般是 vim
)来让你输入这个 message
。
当我们想要提交的 message
很长或者我们想描述的更清楚更简洁明了一点,我们可以使用这样的格式:
2. git commit -a -m “message”
-a
参数表示,可以将所有已跟踪文件中的修改或删除都提交到本地仓库,即使它们没有经过git add
添加到暂存区。
注意,新加的文件(即没有被 git
系统跟踪的文件)是不能被提交到本地仓库的。建议一般不要使用 -a
参数,正常的提交还是使用 git add
先将要改动的文件添加到暂存区,再用 git commit
提交到本地版本库。
3. git commit –amend
git commit --amend
也叫追加提交,它可以在不增加一个新的commit-id
的情况下将新修改的代码追加到前一次的commit-id
中。
1)假如现在版本库里最近的一版正是我们想要追加进去的那版,此时是最简单的,直接修改工作区代码,然后git add
,之后就可以直接进行git push
到服务器,中间不需要进行其他的操作如git pull
等。
2)如果现在版本库里最近的一版不是我们想要追加进去的那版,那么此时我们需要将版本库里的版本回退到我们想要追加的那一版。
- 如果我们知道我们需要的版本与现在最近的版本中间隔着 n 个提交,那么我们可以直接使用
git reset --hard HEAD~n
命令,执行完后运行git log -1
命令我们会发现现在版本库里最近的一版就是我们需要的那版,此时再在工作区直接修改代码,改完之后进行git add
,再执行本git commit --amend
命令,之后git push
。 - 如果我们不知道我们需要的版本与现在最近的版本中间隔着 n 个提交,那么我们可以使用
git log
来查看版本库中的commit-id
,找到我们需要的commit-id
后,在终端中执行git reset --hard commit-id
,执行完后运行git log -1
命令我们会发现现在版本库里最近的一版就是我们需要的那版,此时再在工作区直接修改代码,改完之后进行git add
,再执行本git commit --amend
命令,之后git push
。
4. git commit –help
查看帮助
《Git 常用命令 — git commit命令详解》有1条评论