JavaEE鸿蒙应用开发HTML&JS+前端Python+大数据开发人工智能开发AI+设计软件测试新媒体+短视频直播运营产品经理集成电路应用开发(含嵌入式)Linux云计算+运维开发C/C++拍摄剪辑+短视频制作PMP项目管理认证电商运营Go语言与区块链大数据PHP工程师Android+物联网iOS.NET

【Java教程】Git实战技巧-如何将暂存区的多个功能代码分成多次提交

来源:黑马程序员

浏览1811人

2022.07.05

1、解决思路

当前git情况:

1653720319424.png

通过idea工具,比较简单,但依赖工具

通过原生命令,稍稍复杂些,但不依赖其它工具

如果文件很多,通过交互式窗口选择比较麻烦的情况下 也可以使用命令清空暂存区, 然后在有选择的

add + commit

git rm --cache [fileName]    删除暂存区文件的指定文件(本地工作区未删除)

2、动手实践

基于idea工具解决

点击提交代码

Default Channgelist 变更清单中,只勾选第一天的变更代码

填写提交信息,点击commit提交

完成频道管理commit提交

1653720894723.png

再次点击提交代码

Default Channgelist 变更清单中,勾选第二天的变更代码

填写提交信息,点击commit提交

完成敏感词管理commit提交

1653720988479.png

点击下方git : log日志 查看

1653721226128.png

两次commit提交记录

基于git命令行解决

输入 git add -i 进入暂存区交互式窗口

1653722214545.png

1. 暂存区的文件路径及提交情况
2. 要交互执行的命令
1. status: 暂存区状态 和 git add -i 效果类似
2. update: 可以将已经tracked的文件添加到暂存区
3. revert: 可以根据提示选择,将暂存区文件删除
4. add untracket: 可以将未跟踪tracked的文件添加到暂存区
5. patch: 用于离线打补丁,通过代码版本
6. diff: 对比暂存区文件 和 仓库源文件差异
7. quit: 退出交互式窗口
8. help: 查看帮助
3. what now: 你现在要做什么呢?  
  输入上面指令对应的数字 或 首字母 即可执行对应指令

what now>> 输入 3 回车

1653723009486.png

弹出暂存区文件列表

并且下面的命令行窗口  提示: revert>>

我们可以按要求输入 文件的编号,多个文件以空格隔开

这些文件,是要从暂存区删除的哦

比如:
现在要提交 频道管理的代码, 那么先把敏感词的代码从暂存区删除

敏感词对应的文件编号:  2  4  6  8  10

revert>> 输入 2  4  6  8  10 回车

1653723255188.png

弹出暂存区文件列表
选择revert的文件编号前,有 * 号标记

再次回车 这些文件 会从暂存区删除

revert>> 回车

1653723342044.png

敏感词相关文件,已经变为 untracked 未跟踪状态

what now 输入 1 (查看状态)

1653723425726.png

暂存区中,只剩下频道管理的代码

这时退出交互窗口   commit 提交代码 就可以了

what now 输入 7  退出交互窗口

1653723618954.png

输入git commit -m '功能:开发完成频道管理CRUD'

1653723575571.png

完成频道管理模块代码提交

输入git add . 将敏感词代码再次提交到暂存区, 并查看git status

1653723802764.png

输入git commit -m '功能:开发完成敏感词管理CRUD'

1653723884517.png

输入git log查看提交记录

1653723922435.png

暂存区的代码,已经分为两次commit啦