核心操作
|--------------|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 操作 | 翻译 | 作用 |
| Quick Launch | 快捷启动 / 快速切换项目。 | 用来快速打开最近使用过的仓库、克隆新仓库,或直接通过文件夹路径启动一个 Git 项目。它类似于应用的"主页"或"最近文档列表",不是 Git 命令。 |
| Fetch | 抓取 / 获取。 | 安全地查看远程仓库有什么新变化 。它会下载远程分支的最新提交,但不会修改你本地的工作区或当前分支代码。执行后,你能看到有人推送了更新,但你的代码完全不改变。常用于检查远程是否有新内容,而不会意外合并。 |
| Pull | 拉取 | 把远程仓库的新内容合并到你当前的本地分支 。实际上 Pull = Fetch + Merge。它会直接更新你的工作区代码。如果远程有冲突,Pull 时会提示你解决。这是日常同步团队最新代码的主要操作。 对比 Fetch:Pull 会 改变 你本地代码;Fetch 只是查看,不改变。 |
| Push | 推送 | 把你本地的提交上传到远程仓库 。其他人执行时就会看到你的修改。如果远程已有别人推送的新提交,你需要先 Pull,本地合并后再 Push。 |
| Stash | 储藏 / 暂存 | 临时保存你当前未提交的修改 (工作区和暂存区的改动),并让代码回到干净状态(比如最后一次提交的样子)。场景:你改了一半代码,但急需切换分支修 Bug------直接切换会冲突或丢失修改。这时用 Stash 把修改存起来,切换分支,修完 Bug 切回来,再 Stash Pop(恢复)继续工作。 |
对象分类
|----------------|------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 操作 | 翻译 | 作用 |
| Branches | 分支 | * 作用 :用于并行开发不同的功能或修复 。每个分支代表一条独立的提交线。默认主分支通常叫 main 或 master。 * 常见场景 :你在 main 分支上开发稳定版本,同时创建 feature-login 分支开发登录功能。两者互不干扰,开发完后可以合并(Merge)回主分支。 |
| Remotes | 远程仓库。 | * 作用 :指向存放在服务器(如 GitHub、GitLab)上的仓库地址 。它相当于你本地仓库与远端仓库的连接。默认远程通常叫 origin。 * 常见场景 :你 git clone 一个项目后,自动就有了一个 origin 指向源地址。你可以添加多个远程,比如 upstream 指向原项目,origin 指向自己的 Fork,方便同步上游更新。 |
| Tags | 标签 | * 作用 :为某个特定的提交(Commit)打上永久性的标记 。通常用于标识版本号 (如 v1.0.0、release-2025)。 * 特点:标签一旦创建,一般不会移动(不像分支会随着新提交而前进)。 * 常见场景 :发布软件时,在 v2.0 这个提交上打 Tag,以后随时能精准找到这个版本的代码。 |
| Stashes | 储藏列表(结合你上一个问题提到的 Stash 操作) | * 作用 :管理你临时保存的所有未提交修改 。你可以储藏多次,每个储藏有一个名字或索引(如 stash@{0}、stash@{1})。 * 常见场景 :你正在改功能 A,突然要切到分支 B 修紧急 Bug。你先 Stash(储藏)当前进度,修完 Bug 后,再 Stash Pop(应用并删除该储藏)或 Stash Apply(应用但保留储藏)。你可以在 Stashes 列表里查看、恢复或删除这些历史储藏。 |
| Submodules | 子模块 | * 作用 :在一个 Git 仓库(主项目)中嵌套另一个独立的 Git 仓库。子模块有自己的版本控制,完全独立于主项目。 * 常见场景 :你的主项目依赖一个第三方库(比如某个开源组件)。你可以把这个库作为子模块引入,这样主项目只记录它应该用这个库的哪一个提交(版本)。更新库时,需要单独进入子模块目录去 Pull。 * 注意 :克隆包含子模块的仓库时,需要额外执行 git submodule update --init 才能把子模块的内容真正下载下来。 |
工作区
|---------------|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 操作 | 翻译 | 作用 |
| Local Changes | 本地更改(未提交的工作区内容) | 展示你还没有提交到 Git 的所有本地修改。在这里可以看到: * Modified (已修改):追踪过的文件,你改了但还没 Stage(暂存)。 * Staged (已暂存):你通过 + 号添加到了暂存区,准备下次提交的文件。 * Untracked(未追踪):新建的文件,Git 从未记录过(红色/棕色显示)。 * Conflicted(冲突):合并时发生冲突的文件。 通俗理解 :这是 Git 的草稿纸 。你写的所有新代码在没执行 Commit(拍快照)之前,都待在这里。你可以在 Fork 的这个面板里,肉眼对比修改前后(看绿线/红线),或者把不想要的修改直接 Discard(丢弃)。 |
| All Commits | 全部提交记录(版本历史)。 | 展示这个仓库从第一个提交到现在的完整时间轴。通常以图形化(Graph)形式展示,包含: * 谁(Author)在什么时间提交的。 * 提交时的备注(Message)。 * 每个提交对应的唯一哈希值(Hash)。 * 分支的流向和分叉情况。 通俗理解 :这是 Git 的时间旅行日志。里面存的每一行记录(Commit)都是只读的、永久的历史快照。你可以在这里: * 右键点击任何一个旧的提交,Reset 到那个版本(时光倒流)。 * 把某个提交的修改Cherry-pick(摘樱桃)复制到当前分支。 * 对比任意两次提交之间的代码差异。 |
提交操作
|-----------------|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 操作 | 翻译 | 作用 |
| Commit subject | 本地更改(未提交的工作区内容) | * 意思 :提交信息的第一行,通常是一条简短的总结。 * 作用 :用不超过 50 个字符 (推荐)概括本次提交做了什么。例如:修复登录按钮无响应的问题。 * 为什么重要 :在 git log --oneline、GitHub PR 列表、Fork 的 All Commits 列表中,主要显示的就是这一行。它帮助你和团队快速浏览历史记录,无需点开详情。 * 格式惯例 :常以动词开头(如 修复、添加、更新、删除),不加句号结尾。 |
| Description | 提交信息的后续详细内容 | * 作用 :解释为什么 做这个改动、怎么改的、有什么副作用、关联的 Issue 编号等。 |
| Amend | 修改最近一次提交 | * 作用:当你刚提交完,发现: * * 漏了一个文件没加进去 * 提交信息写错了(比如 "fix bug" 写成了 "fix bUg") * 想再补充一点小改动,不想单独再产生一个 "fix typo" 的杂凑提交 勾选 Amend ,然后把漏的文件 Stage 进来,修改主题/描述,再点 Commit。Fork 会用新的提交替换原来的提交(Commit Hash 会改变)。 * 重要提醒: * 只对本地未推送的提交使用 。如果已经 Push 到了远程且别人拉取过,不要 Amend(否则会造成历史不一致,别人下次拉取会很痛苦)。 * 如果已经 Push 但确定只有你自己在用这个分支,可以 Amend 后加 --force 推送(Fork 里可能提示 "Force Push")。 |
| Commit | 常规提交,稍后手动 Push | |
| Commit and Push | 提交后并推送 | |
代码从修改到共享的流水线
- Unstaged (未暂存) :代码改动了,但还躺在 "工作区",没被 Git 盯上。
- Staged (已暂存) :代码准备好了,放进了 "暂存区" ,等待被打包。
- Commit (提交) :把暂存区的代码打包成一个快照 ,永久保存在本地仓库。
- Push (推送) :把本地的快照上传到远程仓库,分享给其他人。