跳转至

git commit

git commit命令用于将暂存区中的变化提交到仓库区。

-m参数用于指定 commit 信息,是必需的。如果省略-m参数,git commit会自动打开文本编辑器,要求输入。

$ git commit -m "message"

git commit命令可以跳过暂存区,直接将文件从工作区提交到仓库区。

$ git commit <filename>  -m "message"

上面命令会将工作区中指定文件的变化,先添加到暂存区,然后再将暂存区提交到仓库区。

命令行参数

-a

-a参数用于先将所有工作区的变动文件,提交到暂存区,再运行git commit。用了-a参数,就不用执行git add .命令了。

$ git commit -am "message"

如果没有指定提交说明,运行下面的命令会直接打开默认的文本编辑器,让用户撰写提交说明。

$ git commit -a

--allow-empty

--allow-empty参数用于没有提交信息的 commit。

$ git commit --allow-empty

--amend

--amend参数用于撤销上一次 commit,然后生成一个新的 commit。

$ git commit --amend - m "new commit message"

--fixup

--fixup参数的含义是,当前添加的 commit 是以前某一个 commit 的修正。以后执行互动式的git rebase的时候,这两个 commit 将会合并成一个。

$ git commit --fixup <commit>

执行上面的命令,提交说明将自动生成,即在目标 commit 的提交说明的最前面,添加“fixup! ”这个词。

-m

-m参数用于添加提交说明。

$ git commit -m "message"

--squash

--squash参数的作用与--fixup类似,表示当前添加的 commit 应该与以前某一个 commit 合并成一个,以后执行互动式的git rebase的时候,这两个 commit 将会合并成一个。

$ git commit --squash <commit>