# 代码管理相关技术点实操 ## 使用要求 - 使用 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`,确认提交图符合预期。 ## 七、综合验收 - [ ] 从新分支开始,完成:提交、推送、拉取、合并、冲突解决、标签、贮藏、补丁和变基。 - [ ] 最终工作区干净,所有目标分支均能正常切换。 - [ ] 本地与远程提交记录一致,标签状态符合预期。 - [ ] 提交图中能够区分普通提交、合并提交、回滚提交和补丁生成的新提交。 - [ ] 保存最终提交图截图,并记录本次实操中遇到的冲突及解决方式。