波仔新入职了一家公司,公司采用git来管理代码。第一天,波仔很快就写好了频道管理模块的CRUD,开心地哼着歌回家了。 第二天,波仔又接到了一个单表敏感词管理的CRUD任务, 聪明的波仔也很快地完成了。但他突然想起昨天的代码还没有commit, 而现在想commit的时候,发现频道管理的代码和敏感词管理的代码都通过git add命令加入到了暂存区。如果这时候commit ,相当于把两天的任务提交到了一起。 公司的git管理有严格规范 , 两个模块的代码必须要分两次提交才可以。
那么问题来了, 代码已经全部通过,提交到了暂存区,如何将暂存区的代码分多次commit提交呢?
当前代码情况如下图:
当前git情况如下图:
点击提交代码,
Default Channgelist 变更清单中,只勾选第一天的变更代码,
填写提交信息,点击commit提交,
完成频道管理commit提交。
操作如下图:
操作如下图:
点击下方git:log日志查看:
两次commit提交记录
输入git add-i 进入暂存区交互式窗口
what now>>
输入3
回车
弹出暂存区文件列表
并且下面的命令行窗口,提示: revert>>
我们可以按要求输入文件的编号,多个文件以空格隔开
这些文件,是要从暂存区删除的哦
比如:
现在要提交频道管理的代码, 那么先把敏感词的代码从暂存区删除
敏感词对应的文件编号: 2 4 6 8 10
revert>>
输入2 4 6 8 10
回车
弹出暂存区文件列表
选择revert的文件编号前,有 * 号标记
再次回车 这些文件 会从暂存区删除
revert>>回车
敏感词相关文件,已经变为 untracked 未跟踪状态
what now 输入 1 (查看状态)
暂存区中,只剩下频道管理的代码
这时退出交互窗口,commit 提交代码 就可以了
what now 输入 7 退出交互窗口
输入
git commit -m '功能:开发完成频道管理CRUD'
完成频道管理模块代码提交
输入git add. 将敏感词代码再次提交到暂存区, 并查看git status
输入
git commit -m '功能:开发完成敏感词管理CRUD'
输入
git log
查看提交记录
暂存区的代码,已经分为两次commit,任务完成。
如果文件过多,通过交互式窗口选择如果太麻烦,也可以用命令清空暂存区,然后在有选择的add+commit。
git rm --cache [fileName] 删除暂存区文件的指定文件(本地工作区未删除)。
这样,波仔的问题就解决啦~ 怎么样,简单吧,大家快试试吧!