购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.7 追加文件到最近一次的Commit

刚刚完成Commit,但发现有一个文件忘了加上,又不想为了这个文件重新再发一次Commit……

像上述这种情况,虽然为了这个文件再加送一次Commit也不是不行,但有些人有Commit的洁癖,希望每个Commit既不要太大也不要太小,做到其应该做的事就好。所以,如果不想再发一次Commit,就把这个文件并入最近一次的Commit。可以采用下面这两种方式来完成。

(1)使用git reset命令把最后一次的Commit删除,加入新文件后再重新Commit。

(2)使用--amend参数进行Commit。

这里先介绍第2种方式,第1种方式会在5.13节进行说明。

例如,这里有一个名为cinderella.html的文件,想把它加到最近一次的Commit中,可以使用如下命令:

$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

  cinderella.html

nothing added to commit but untracked files present (use "git add" to track)

假设它刚加进来,状态还是Untracked。流程上一样,还是使用git add命令先把文件加到暂存区:

$ git add cinderella.html

接着在Commit时加上--amend参数:

$ git commit --amend --no-edit
[master 3128d00] update story
Date: Wed Aug 16 05:42:56 2017 +0800
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 cinderella.html 
create mode 100644 config/database.yml

这样就可以把文件并入最近一次的Commit。最后面那个--no-edit参数的意思是“我不要编辑Commit信息”,所以就不会跳出Vim编辑器窗口。

如果使用SourceTree,同样也是先把cinderella.html文件加至暂存区(勾选),然后在Commit的时候选择Commit Options→Amend last commit选项,如图5-24所示。

图5-24

Commit信息改不改都可以,最后单击右下角的Commit按钮,这个文件就会被并到最近的一次Commit中。

注意!

像这样改动历史记录的操作,尽量不要应用在已经Push出去的Commit上。 NQsIG+3KlE1fTpUfLwS/n46OsbFs51O0mOvl63DPcRLuY3dG8nomJH7+OD1tw9vx

点击中间区域
呼出菜单
上一章
目录
下一章
×