commit

将暂存区中的文件提交到本地仓库中。注意它只会提交暂存区中的文件

  1. 通过 git commit -m [msg] ,其中 -m 后面的是本次提交的文字说明,该文字说明是必不可少的;

  2. 如果 git commit 后不跟 -m 选项,则 Git 会启动默认的文本编辑器让用户输入本次的文字说明。可以通过 git config core.editor 修改使用的编辑器。

  3. 每一次运行 commit 时,都会建立一个 commit 对象。


git commit -a

单独使用 git commit 时,只提交暂存区中的内容;如果想将非暂存区的内容也提交,必须先经过 git add 后才行。这有时候会显得繁琐。

git commit -a 在跳转时会跳过暂存区,它会将所有已纳入版本控制的文件暂存起来,然后一并提交

  1. 该操作对未跟踪的文件无效。它只是对已跟踪过的文件先执行 add 操作,然后再 commit。

  2. 使用该命令时,也需要通过 -m 指定提交的文字说明。如下:

$ git commit -a -m "测试 -a 效果"

git commit --amend

使用 --amend 选项可以修改最后一次提交的内容。注意:修改之后会新建一个提交结点,即使没有进行任何修改(包括内容与提交信息)

  1. 如果最后一次提交后没有修改文件,则运行该命令可以修改提交说明信息,而提交的快照与上一次一样

    • 可以新建一个仓库,只 commit 一次,然后再运行 git commit --amend,重新输入新的提交说明。最后运行 git log -2 可以发现依旧只有一次提交,但提交信息已经换成新输入的文字。
  2. 如果最后一次提交后有修改,可以先将修改通过 add 命令暂存到暂存区,然后运行 --amend 提交,可将本次修改的内容合并到上一次提交中。可按如下步骤进行验证:

    1. 新建一个仓库,仅进行一次提交,运行 git log -p -2 可以看出只有一条提交,并且列出了本次提交进行的修改;

    2. 修改一个文件,运行 git add ,然后运行 git commit --amend。再运行 git log -p -2,可以发现只有一条提交,但修改的部分已添加上了本次的修改。这说明:git commit --amend 会将本次修改追加到上次 commit 中

  3. 该命令提交的是当前的暂存区。

     git commit --amend
    

    会将当前暂存区的快照再一次提交。也可以直接通过 -m 指定提交说明:

    git commit --amend -m "test"
    

你可能感兴趣的:(commit)