偶尔会有某一部分的代码或缺陷修复需要临时被提前发布,假设当前分支已修改了这个BUG,但当前分支已存在其他未开发完的代码,无法临时提交全部代码的情况。
解决方法
1. 严格切分支: 为每个 BUG / 需求 从当前模块的主分支中切一个分支出来对应开发。
2. 串行开发&频繁push:在该分支中不进行并行开发,每开发或修复一个需求,就进行一次push。
3. 提交指定文件(非常灵活)
本文介绍第三种方法的具体实现操作
首先来明确 Git 的三个板块:
- 工作区
- 暂存区
- 版本库
我们在 Git 的工作区进行开发
用 add 命令将工作区变更的代码保存至暂存区
用 commit 命令将暂存区的变更推送至本地仓库的版本库
最后用 push 命令将本地的版本库上传推送至链接的远程仓库
命令行
########## 依据上下文顺序执行 ##########
git status -s # 查看仓库状态
git add [src/.../.../文件名] # 将工作区中指定的文件提交至暂存区 [路径](参考上一条命令 git status 输出的被修改文件的路径)
git stash -u -k # 忽略工作区未被执行 git add 的文件变更,将其隐藏起来,这样在执行 git commit 时不会被影响
git commit -m [提交了一个版本] # 将已执行 git add 的暂存区中的文件提交至版本库,并为本次提交书写注释 [版本注释]
git push # 将版本库推送至远程仓库(remote/origin)
git stash pop # 恢复工作区被忽略的文件
Git status -s 状态码
例如:
路径前的红色字母位置为状态码占位符
A | 当前分支本地仓库的新增文件(远程仓库不存在) |
C | 文件的一个新拷贝 |
D | 当前分支本地仓库被删除的文件(远程仓库仍存在) |
M | 内容 / mode变更的文件 |
R | 文件名被修改的文件 |
T | 类型改变的文件 |
U | 当前分支本地仓库中未被合并的文件(需要完成合并才能进行提交) |
X | 未知状态的文件(可能是遇到 Git 的 bug 了,可以向 Git 提交 bug report) |
? | 未被 Git 进行管理的文件,可以使用 git add src/.../.../file 把文件名为 file 的文件添加至 Git 的被管理目录 |