git更改窗口核心是控制提交内容:文件分三类,通过+或右键暂存,暂存全部需谨慎;git存放庫窗口用于查看分支/提交图/标签,支持不切分支浏览和ctrl多选比对;同步页须先pull再push防冲突。

Git 更改窗口:识别和控制哪些文件进提交
“Git 更改”是日常最常打开的 Git 面板,它直接反映工作区状态,等效于 git status。它把文件分三类显示:未修改、已修改(但未暂存)、已暂存。关键不是“看到变化”,而是“决定哪些变化进本次提交”。
- 点击文件旁的
+按钮,把单个文件加入暂存区;右键选“暂存”也一样 - 点顶部“暂存全部
+”会把所有已修改文件暂存——但要注意:如果混着调试日志、临时注释或未完成的 TODO,一并暂存就污染了提交 - 想跳过暂存直接提交?输入消息后点“全部提交”,VS 会执行
git commit -a,自动暂存所有已跟踪文件的修改(不包括新增未跟踪文件) - 双击任一文件,打开差异视图,左侧是工作区,右侧是暂存前版本;若已暂存,则右侧是暂存版本
Git 存放庫窗口:查分支、看提交图、比两个版本
这个窗口不是用来“操作”的,而是用来“看清现状”的。它默认分左右两栏:左栏选目标(Branches / Tags / Pull Requests),右栏展示对应内容。真正容易被忽略的是它的“不切换分支也能浏览”能力。
- 在左栏选中某个远程分支(如
origin/main),右栏 Graph 区会显示该分支的提交链;点任意提交,右栏立刻显示该次提交的变更文件和 diff - 按
Alt+↑或Alt+↓可在左栏不同区块间快速跳转,不用鼠标点来点去 - 想对比两个提交?先在 Graph 中点第一个提交,再按住
Ctrl点第二个,VS 会自动打开两版之间的差异视图(等效git diff commit1..commit2) - 标签(Tags)不是装饰——点开
v1.2.0这类标签,就能原样检出那个发布时刻的代码状态,适合回归验证
分支切换与创建:别只盯着下拉框
工具栏分支下拉框只显示当前本地分支,但真实协作中你经常要基于远程分支建新功能分支,或临时切到别人刚推上来的 feature/login-v2 查问题。光靠下拉框做不到。
- 点下拉框后,别急着选——先点底部“管理分支”,这里列出所有本地 + 远程分支,支持右键“基于此创建分支”
- 创建时,“基础分支”建议选远程分支(如
origin/develop),而不是本地main,否则可能漏掉团队最新集成 - 切换分支前,确保当前有未提交更改已暂存或丢弃;否则 VS 会阻止切换,并提示“工作区有未保存更改”,这不是 bug,是保护机制
- 删除分支用右键菜单“删除分支”,务必确认勾选了“删除远程分支”——否则本地删了,远端还挂着,下次
git fetch又回来
同步(Sync)页面:拉取和推送不能颠倒顺序
“同步”页表面只是个按钮集合,但它的执行顺序直接影响协作顺畅度。多人共用一个分支时,Pull 和 Push 的先后关系就是冲突预防的第一道防线。
- 每次准备
Push前,必须先点Pull——VS 会自动做git pull --rebase(除非你关了该选项),把你的提交“重放”到远程最新基础上 - 如果
Pull后出现冲突,VS 会在“Git 更改”窗口标出冲突文件,双击打开内联合并编辑器,手动选保留哪边或改写内容 - “同步”页顶部的数字(如 “3 incoming, 2 outgoing”)是实时的,但不会自动刷新;需要手动点一次
Fetch才更新,尤其当你等别人合入 PR 时 - 慎用“Commit All and Push”快捷按钮——它把本地提交和推送绑在一起,一旦推送失败(比如权限不足或网络中断),你得回头找刚提交的 hash 来修正,不如分开操作可控
真正卡住人的往往不是功能找不到,而是误以为某个面板只能干一件事。比如“Git 存放庫”能看图、能比提交、能检出标签,但没人告诉你按 Ctrl 多选提交就能差分;又比如“同步”页的数字不点 Fetch 就不更新,这种细节不踩一次坑很难记住。











