|
|
|
@@ -0,0 +1,79 @@ |
|
|
|
# 代码管理相关技术点实操 |
|
|
|
|
|
|
|
## 使用要求 |
|
|
|
|
|
|
|
- 使用 SourceTree 完成图形界面操作;需要验证 Git 命令时使用仓库终端。 |
|
|
|
- 每个任务完成后,在 SourceTree 中确认提交图、分支和工作区状态。 |
|
|
|
- 除特别说明外,任务产生的提交信息使用清晰、统一的中文描述。 |
|
|
|
|
|
|
|
## 一、仓库与基础概念 |
|
|
|
|
|
|
|
- [ ] 创建一个本地 Git 仓库并在 SourceTree 中打开。 |
|
|
|
- [ ] 创建一个远程仓库并克隆到本地。 |
|
|
|
- [ ] 为本地仓库关联远程仓库,执行一次获取(Fetch)。 |
|
|
|
- [ ] 在仓库中分别制造工作区、暂存区和提交记录的变化,并确认三者状态。 |
|
|
|
- [ ] 查看提交节点、提交 ID、作者、时间和提交说明。 |
|
|
|
|
|
|
|
## 二、提交节点操作 |
|
|
|
|
|
|
|
- [ ] 新建 `feature/base` 分支,创建文件并完成至少 3 次提交。 |
|
|
|
- [ ] 修改已提交文件,分别完成一次“提交全部”和一次“暂存部分内容后提交”。 |
|
|
|
- [ ] 将分支重置到上一个提交,分别体验软重置、混合重置和强制重置。 |
|
|
|
- [ ] 恢复一次错误提交:使用回滚提交(Revert)生成新的反向提交。 |
|
|
|
|
|
|
|
## 三、分支操作 |
|
|
|
|
|
|
|
- [ ] 从当前分支创建 `feature/login` 和 `feature/report` 两个分支。 |
|
|
|
- [ ] 在两个分支分别提交不同内容,并完成分支切换。 |
|
|
|
- [ ] 将 `feature/login` 合并到 `feature/base`,再删除已合并分支。 |
|
|
|
- [ ] 在两个分支修改同一文件同一位置,制造合并冲突。 |
|
|
|
- [ ] 手动解决冲突,提交合并结果,并确认提交图。 |
|
|
|
- [ ] 将本地分支推送到远程,执行一次拉取(Pull),确认远程和本地记录一致。 |
|
|
|
|
|
|
|
## 四、其他常用操作 |
|
|
|
|
|
|
|
- [ ] 创建 `.gitignore`,忽略日志、构建产物和临时文件,并验证忽略效果。 |
|
|
|
- [ ] 让 Git 停止跟踪一个已提交文件,但保留本地文件。 |
|
|
|
- [ ] 修改文件后执行贮藏(Stash),切换分支,再恢复贮藏内容。 |
|
|
|
- [ ] 制造未提交修改并使用丢弃(Discard)恢复文件。 |
|
|
|
- [ ] 使用移除(Remove)删除一个已跟踪文件并提交。 |
|
|
|
- [ ] 为一个稳定提交创建标签 `v1.0.0`,推送标签到远程,再删除本地和远程标签。 |
|
|
|
|
|
|
|
## 五、补丁操作 |
|
|
|
|
|
|
|
### 1. 工作区补丁 |
|
|
|
|
|
|
|
- [ ] 在 `feature/patch-worktree` 中制造未提交修改。 |
|
|
|
- [ ] 创建工作区补丁文件(`git diff > worktree.patch`)。 |
|
|
|
- [ ] 放弃本地修改,在另一个分支应用该补丁(`git apply`)。 |
|
|
|
- [ ] 检查文件差异,手动提交应用后的修改。 |
|
|
|
|
|
|
|
### 2. 提交补丁 |
|
|
|
|
|
|
|
- [ ] 在 `feature/patch-commit` 中完成一次独立提交。 |
|
|
|
- [ ] 创建提交补丁(`git format-patch -1 HEAD`)。 |
|
|
|
- [ ] 将分支强制回退到该提交的父提交。 |
|
|
|
- [ ] 使用 `git am <补丁文件>` 应用补丁。 |
|
|
|
- [ ] 确认补丁应用后自动产生提交,检查提交说明和提交差异。 |
|
|
|
|
|
|
|
### 3. 多提交补丁 |
|
|
|
|
|
|
|
- [ ] 连续创建至少 2 次提交。 |
|
|
|
- [ ] 使用 `git format-patch <基准提交>..HEAD` 导出多个补丁。 |
|
|
|
- [ ] 在目标分支使用 `git am` 按顺序应用全部补丁。 |
|
|
|
- [ ] 制造一次补丁冲突,解决后执行 `git am --continue`;必要时验证 `git am --abort`。 |
|
|
|
|
|
|
|
## 六、变基 |
|
|
|
|
|
|
|
- [ ] 创建 `feature/rebase` 分支并完成至少 2 次提交。 |
|
|
|
- [ ] 在主分支新增提交。 |
|
|
|
- [ ] 将功能分支变基到主分支最新提交。 |
|
|
|
- [ ] 处理变基冲突,完成 `continue`,确认提交图符合预期。 |
|
|
|
|
|
|
|
## 七、综合验收 |
|
|
|
|
|
|
|
- [ ] 从新分支开始,完成:提交、推送、拉取、合并、冲突解决、标签、贮藏、补丁和变基。 |
|
|
|
- [ ] 最终工作区干净,所有目标分支均能正常切换。 |
|
|
|
- [ ] 本地与远程提交记录一致,标签状态符合预期。 |
|
|
|
- [ ] 提交图中能够区分普通提交、合并提交、回滚提交和补丁生成的新提交。 |
|
|
|
- [ ] 保存最终提交图截图,并记录本次实操中遇到的冲突及解决方式。 |