DOMAIN · GIT
Git 与协作
改动如何记录、同步、合并与恢复。从用户常说的话进入,逐步看懂背后的技术关系与验收边界。
Git 与 GitHub
02Git 在本地记录版本,GitHub 托管仓库并提供协作流程。
“先在本地提交,再推送到 GitHub 给团队评审”仓库
03保存项目文件、版本历史和 Git 配置的工作目录。
“先确认现在操作的是哪个项目仓库”工作区与暂存区
04工作区是正在编辑的文件,暂存区是准备进入下一次提交的改动。
“只把这次修复相关的文件放进提交”Commit
05把一组有明确目的的暂存改动保存成带说明的版本节点。
“完成这个修复后做一个可以独立回退的提交”Branch
06指向一条提交历史的可移动分支,用来隔离不同工作。
“开一个分支做功能,完成后再合回主线”Merge 与 Rebase
07Merge 保留分叉并产生合并结果,Rebase 把提交重新放到新基线后。
“保留协作历史就合并,整理本地提交再变基”Fetch、Pull 与 Push
08Fetch 只获取远程信息,Pull 获取并整合,Push 把本地提交发送到远程。
“先看看远程变了什么,确认后再同步和推送”冲突与回退
09冲突需要人工决定两边改动如何共存,回退让项目恢复到已知状态。
“这两处都改了,先看差异再决定保留什么”Clone 克隆仓库
10把远程仓库的历史、分支和工作文件复制到本地。
“把项目克隆到本机,然后安装依赖并运行。”Remote 与 Origin
11Remote 是远程仓库别名,origin 通常是克隆时自动创建的默认别名。
“检查 origin 指向哪个 GitHub 仓库,再决定推送。”.gitignore 忽略规则
12声明哪些未跟踪文件不应进入 Git 版本历史。
“忽略 node_modules、构建产物和本地密钥文件。”Diff 差异
13逐行显示两个版本、提交或工作状态之间的变化。
“提交前先看 diff,确认只改了这次任务相关内容。”Stash 暂存工作
14把尚未提交的本地改动临时收起,稍后再恢复。
“先收起当前实验,切分支修紧急问题,之后再恢复。”Tag 与 Release
15Tag 固定指向一个历史版本,Release 在此基础上附加说明和制品。
“为 v0.3.2 打标签,并上传对应平台安装包。”Pull Request 合并请求
16把一个分支的改动提交给团队讨论、检查并合并。
“说明改了什么、怎么测的,并请求评审后合并。”Code Review 代码审查
由他人或自动工具检查改动的正确性、风险和可维护性。
“先找会导致错误的地方,再看样式和命名。”