把“vscode安装git”和“git基本使用”放在一起写,最开始我有点犹豫:这话题是不是太基础了?但当我看到搜索记录里常年霸榜的“git : 无法将git项识别为 cmdlet、函数、脚本文件或可运行程序的名称”“git下载安装教程”“vscode汉化”这些词时,我知道还是得认真写一篇。很多人并不是不聪明,而是卡在一个信息断点上:安装Git时每个选项到底该不该勾?VSCode里装了一堆插件,为什么还没反应?第一次提交后,代码到底去哪了?这篇就是我实际配环境的完整记录,把安装、配置、首次提交、常见报错一条线串起来。适合刚接触编程、准备把VSCode当作主力编辑器、被版本控制折腾得够呛的新手,也适合想把手里的Git环境重新整理一遍的老手。下面直接进入正题,我不讲多余的理论,只讲每一步怎么操作、为什么这么操作,以及操作之后可能踩到哪些坑。
1. 为什么要先把Git和VSCode这对组合装明白
1.1 你需要解决的其实不是“安装”问题
很多人搜“vscode安装git”,会觉得这是一个“下载一个装一个”的问题。实际上,真正的难点在于:安装完Git之后,你的电脑并没有在视觉上发生任何变化,没有新的快捷方式,没有弹窗,你甚至不知道它装成功了。直到你在VSCode里输入git status,系统告诉你“无法识别”,这时候你才意识到事情没那么简单。
我把整套流程拆开来看,其实包含四个独立的部分:Git程序本身、VSCode编辑器、VSCode里的Git插件、以及你的代码托管平台账号(比如GitHub或国内代码托管平台)。这四个部分任何一个没对上,你都会看到各种莫名其妙的报错。所以这篇文章不是教你“点下一步”,而是帮你把这条链路上每一个环节都理顺。
1.2 这套组合适合谁
我自己推荐刚起步的开发者直接使用VSCode + Git组合,理由很简单:VSCode免费、插件生态成熟、对Git的支持已经内置在源代码管理面板里,不需要额外装一个独立客户端。而且你现在搜到的那些热门问题,比如“vscode配置python环境”“vscode配置c/c++环境”“vscode连接ssh远程服务器”,本质上都是同一个思路——通过VSCode这个入口,把外部工具链整合进来。Git就是这条工具链里的第一环。
所以,这篇内容的读者大概是这几类:
- 刚学编程,第一次听说版本控制,不知道从哪下手的新手。
- 已用VSCode写了几个月代码,但一直手动备份文件,想正经用Git管理项目的自学开发者。
- 被“git无法识别”“中文乱码”“push不上去”这些问题折磨过,想一次性把环境理顺的人。
如果你属于其中一类,这篇文章可以完整跟着操作一遍,我会把每一步的关键选项和后续影响说清楚。
1.3 学习路径总览
完整路线是这样的:先装Git并保证命令行里能用,再装VSCode并配置中文界面和必要插件,然后跑一遍初始化配置(用户名、邮箱、SSH免密),最后在VSCode里从一个新建文件夹开始,完成一次“初始化 → 提交 → 推送到远程仓库”的完整闭环。最后附上高频报错排查清单,方便你遇到问题时对号入座。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装Git:从下载到命令行认账
2.1 Windows下Git安装的选项怎么选
Git的官方下载地址是git-scm.com,进入页面后,一般会自动识别你的操作系统。Windows用户直接下载64位版本即可。如果没自动识别,就手动找到“Windows”标签下的“64-bit Git for Windows Setup”,这个安装包大概几十MB,下载后双击运行。
安装过程中有几个选项需要认真对待,这也是很多人安装完发现“git命令用不了”的根源。
第一项是“Select Components”,里面默认勾选了“Git Bash Here”和“Git GUI Here”。这两个建议保留,右键菜单里会多出“Open Git Bash here”,后面你会在VSCode终端里用到Git Bash,所以这里勾上没坏处。
第二项是“Choosing the default editor used by Git”,这是用来决定git commit时如果没有指定-m参数、直接弹出编辑器时用哪个编辑器。如果你装了VSCode,建议在这一步选择“Use Visual Studio Code”,这样后面提交信息如果需要修改,VSCode会直接打开一个临时文件给你编辑,体验比Vim友好得多。如果没有VSCode,选默认的Vim也行,但你要知道Vim里输入:wq退出。
第三项是“Adjusting your PATH environment”。这一步我建议新手直接选默认的“Git from the command line and also from 3rd-party software”。这句话的意思是,Git会把自己的可执行目录加入系统环境变量PATH中。如果你选了中间项或“Use Git and optional Unix tools from the Command Prompt”,有时会出现PowerShell或CMD能识别git、但某些软件识别不了的情况。选了默认选项后,VSCode、PowerShell、CMD、Git Bash都能直接使用git命令。
第四项是“Choosing the SSH executable”,通常不需要动。第五项是“Choosing HTTPS transport backend”,默认即可。第六项“Line Ending Conversions”默认选“Checkout Windows-style, commit Unix-style line endings”。这个跟跨平台换行符相关,建议先保持默认,后面我会单独解释。
安装完成后,正常的验证方式是打开任意终端,输入:
bash复制git --version
如果输出类似git version 2.47.1.windows.1,就说明核心部分已经装好了。这一步一定要做,因为很多人在安装时以为装完了,但实际PATH没有生效,旧终端窗口不重启也会有同样报错。
2.2 macOS和Linux的安装方式
macOS用户有两种方式安装Git。一种是安装Xcode Command Line Tools,在终端里输入git --version,系统会提示你安装,安装后自带Git。另一种是先用Homebrew安装,命令是:
bash复制brew install git
我个人推荐Homebrew方式,因为版本较新,而且后续升级方便,一条brew upgrade git就能更新。
Linux用户就要看发行版了,Debian/Ubuntu系:
bash复制sudo apt update
sudo apt install git
Fedora/RHEL系:
bash复制sudo dnf install git
安装完同样用git --version验证。
2.3 验证安装与排查“git不是内部或外部命令”
这一步是热搜词里的重灾区。“git不是内部或外部命令”,以及VSCode终端里出现“git : 无法将‘git’项识别为 cmdlet、函数、脚本文件或可运行程序的名称”,原因几乎都是Windows系统PATH环境变量里没有Git的安装路径。
排查方法很简单,先找到Git安装目录,比如默认的C:\Program Files\Git,git.exe在C:\Program Files\Git\cmd目录下。然后打开系统设置,搜索“编辑系统环境变量”,点开“环境变量”,在“系统变量”里找到Path这一项,编辑并新增C:\Program Files\Git\cmd。改完之后必须重新打开终端或VSCode窗口才生效。
这里我踩过一个坑:有些电脑上有多个用户账户,安装Git时只勾了当前用户PATH,换一个Windows账号登录后就找不到git了。遇到这种情况,直接在系统Path里加上Git的cmd目录,就能全局生效。
还有一个小细节:如果你在VSCode里打开终端,执行git --version时报错,但单独打开PowerShell执行没问题,那大概率是VSCode的终端缓存了旧的环境变量。重启VSCode一般能解决。
2.4 安装Git Bash之后终端里能做什么
安装Git时自带的Git Bash是一个轻量级Bash环境,它最大的价值是提供了一个接近Linux的体验。比如ls、grep、touch这些命令都可用,而Windows自带的CMD不支持。我建议你在VSCode里把默认终端改成Git Bash,尤其对新手来说,这样你在网上搜到的Linux命令教程大多可以直接照抄,不用再做PowerShell和CMD的语法转换。
改默认终端的做法:VSCode中按Ctrl+Shift+P,输入“Terminal: Select Default Profile”,选择“Git Bash”。然后按`Ctrl+``打开终端,底部就会是Bash风格。这一步虽然不是必须的,但它能显著减少后续学习过程中的命令兼容性问题。
3. 把VSCode调成顺手的状态
3.1 VSCode安装与中文界面
VSCode官网code.visualstudio.com,下载安装包后一路下一步即可。Windows安装时,建议勾选“添加到PATH”,这会让VSCode在终端里可以用code .命令打开当前目录。如果你已经装好了却没勾选,也可以在安装目录里手动配置环境变量,或者重新运行安装包修复安装。
中文界面是很多人装完VSCode遇到的第一道坎。打开VSCode后,先安装“Chinese (Simplified) Language Pack for Visual Studio Code”扩展,装完后按Ctrl+Shift+P,输入“Configure Display Language”,选择“中文(简体)”,重启VSCode就变成中文界面了。
这里有个容易忽略的点:语言包本质上是扩展,需要联网从插件市场安装。如果安装界面一直转圈或提示错误,先检查网络是否正常,再重启VSCode重试。VSCode插件市场的服务器偶尔不稳定,多试几次一般能成功。
3.2 必装的三类Git相关插件
VSCode对Git的内置支持已经很强了,左侧栏的“源代码管理”图标就能看到文件变更、暂存、提交、推送等操作。但如果只是用内置功能,你只能看到当前变更,看不到提交历史图谱、作者信息、一行代码是谁改的。所以我会再装三个插件:
第一是GitLens。它会在代码行内显示这一行最近是谁改的、提交信息是什么,对排查问题非常有用。第二是Git Graph。它会把分支、提交记录画成一条清晰的图谱,比看命令行日志直观得多。第三是Git History,用来查看单个文件的历史变更记录。这三个插件装完,VSCode的Git使用体验基本拉满。
安装插件时可以直接搜索,也可以一次性安装“Git Extension Pack”,它会把常用Git扩展打包安装。不过我个人习惯单独装,避免一些用不到的扩展占用资源。
3.3 让集成终端真正好用
VSCode内置终端是我最常用的功能。当你把一个项目文件夹用VSCode打开后,按`Ctrl+``,终端默认进入当前项目目录,非常方便。
我建议你顺手做两件事:第一,按前面说的把默认终端改成Git Bash;第二,记住四个快捷键:新建终端Ctrl+Shift+``,清空终端输入clear,放大字号Ctrl+=,缩小字号Ctrl+-`。这四点足够日常使用了。
还有一个实用小技巧:在源代码管理面板里,可以用git add的图形化按钮做暂存,没必要每次都在终端里敲命令。但终端命令一定要会,因为有些操作(比如处理复杂的冲突合并)只有命令行最方便。
3.4 VSCode右键跳转失灵的常见原因
热搜词里有“vscode按住ctrl点击方法没跳转”“vscode右键没有跳转到定义”,这虽然不完全是Git的锅,但它跟环境配置逻辑一致,所以我在这里一并排查。
跳转定义依赖的是语言服务器协议(Language Server Protocol),也就是说,VSCode需要安装对应语言专门的扩展才能提供代码分析和跳转。比如Python得装“Python”扩展(内含Pylance),C++得装“C/C++”扩展,JavaScript最好装“JavaScript (ES6) code snippets”等配套扩展。
如果你装了扩展还是跳不动,检查两件事:第一,代码是否在项目文件夹内,而不是单文件打开模式;第二,项目依赖是否安装完整,比如Python项目的虚拟环境是否被正确选择。还有一个常见的坑:文件路径里有中文或空格,某些语言服务器会解析失败。把路径改成纯英文通常能解决。
4. Git的核心配置:一次配好,长期舒服
4.1 用户身份配置:别等到提交了才想起
Git的每次提交都会记录作者信息,这个信息来自user.name和user.email,不是登录GitHub用的密码,而是你的身份标签。如果你第一次提交后才发现这个信息写错了,虽然可以改,但牵扯到历史记录重写,处理起来比较麻烦。所以最好安装完后立刻配置。
在终端里执行:
bash复制git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
--global表示全局配置,当前电脑上所有仓库都会使用这个身份。如果你某个项目想用另一个身份,可以用--local在当前仓库里覆盖:
bash复制git config --local user.name "项目专用名字"
配置完后,可以用git config --list查看当前所有配置,确认是否生效。这一步极其重要,我见过太多人跳过这一步,提交GitHub时头像不显示,或者贡献度不记录,就是因为邮箱和GitHub账号不匹配。
4.2 SSH免密配置:从此不用反复输密码
使用HTTPS方式clone和push时,每次都要输入用户名和密码,操作久了非常烦人。SSH免密就是把你的电脑公钥放到代码托管平台上,之后Git通过SSH协议通信,不再需要密码。
生成密钥的命令:
bash复制ssh-keygen -t ed25519 -C "你的邮箱"
一路回车即可,会在用户目录下生成一对文件:私钥id_ed25519和公钥id_ed25519.pub。私钥自己留着,公钥可以公开。
查看公钥内容:
bash复制cat ~/.ssh/id_ed25519.pub
把输出的整行内容复制,登录你的代码托管平台(GitHub或Gitee),在个人设置里找到“SSH Keys”或“SSH公钥”页面,粘贴保存。
保存后,在终端测试连接:
bash复制ssh -T git@github.com
如果看到类似“Hi 用户名! You've successfully authenticated”的提示,就说明配置成功了。之后用SSH地址clone仓库时,全程不用输密码。
这里我提醒一句:私钥文件不要发给任何人。如果怀疑私钥泄露,重新生成一对并删除旧公钥即可。
4.3 换行符和编码:团队协作的第一道坎
Windows和Linux的换行符不同,Windows用\r\n,Linux和macOS用\n。这就是安装Git时那个“Line Ending Conversions”选项的来历。
Git的默认处理方式是把仓库里的换行符统一存为\n,在你的本地工作区再根据系统转换成对应的换行符。这个设置对大多数场景是合理的。但如果你在Windows上打开一个来自Linux的代码文件,发现整行变红、diff里全是乱码,多半就是换行符在作怪。
另外一个高频问题是中文文件名或中文内容在终端显示为\xxx形式。解决办法是:
bash复制git config --global core.quotepath false
这样中文文件名就能正常显示。这两条配置建议新人都提前设置好,可以少踩很多坑。
4.4 常用Git命令速查
我整理了一张速查表,适合贴在桌面上:
| 操作 | 命令 | 说明 |
|---|---|---|
| 查看当前状态 | git status |
查看工作区、暂存区变更 |
| 暂存所有变更 | git add . 或 git add -A |
把当前目录所有改动加入暂存区 |
| 撤销暂存 | git restore --staged <file> |
把已暂存的文件移回工作区 |
| 提交 | git commit -m "message" |
生成一个新版本 |
| 修改上一次提交 | git commit --amend |
合并修改到上一次提交 |
| 查看历史 | git log --oneline |
简洁版提交记录 |
| 创建分支 | git branch <分支名> |
创建新分支 |
| 切换分支 | git switch <分支名> |
切换当前分支 |
| 推送到远程 | git push |
把本地提交推送到远程仓库 |
| 拉取最新 | git pull |
拉取远程更新并合并到当前分支 |
这是最基础的十个命令,够应付90%的日常操作了。下面我会在完整流程里把它们串起来。
5. 在VSCode里跑通一个完整的提交推送流程
5.1 初始化仓库:两种路线
假设你现在有一个项目文件夹,你想让Git接管它。第一种方式是在VSCode里打开这个文件夹,按`Ctrl+``打开终端,然后输入:
bash复制git init
运行后,项目目录下会出现一个隐藏的.git文件夹,这就是仓库的核心。这时源代码管理面板会显示“由于没有提交,源代码管理为空”之类的提示。
第二种方式是在终端里直接进入目录再初始化,效果一样。初始化之后,你就拥有了一个本地仓库,所有文件变更都在Git的追踪范围内。
这里有一个新手容易忽略的点:git init之前要先想好.gitignore文件。否则node_modules、venv、build这类目录都会被Git追踪,提交时会又慢又乱。最好在初始化后马上创建.gitignore,并把常见的依赖目录和临时文件写进去。比如Node项目至少要忽略node_modules和dist,Python项目至少忽略__pycache__和.venv。
5.2 第一次提交:暂存区、提交信息与约定式提交规范
Git的工作流程可以理解成三个区域:工作区(你实际改的文件)、暂存区(存放你准备提交的内容)、版本库(已经提交的历史)。只有git add过的文件才会被记录进提交。
第一次提交的操作:
bash复制git add .
git commit -m "feat: 初始化项目"
git add .把所有变更加入暂存区。git commit -m后面的信息就是提交说明。这里我要重点说说提交规范,因为热搜词里正好有“git提交规范”。
我目前推荐约定式提交规范,格式是:类型(范围): 描述。
| 类型 | 含义 |
|---|---|
| feat | 新功能 |
| fix | 修复bug |
| docs | 文档变更 |
| style | 代码格式调整,不影响逻辑 |
| refactor | 重构,不改变功能 |
| test | 测试相关 |
| chore | 构建、配置等杂项 |
比如feat: 新增登录页面、fix: 修复首页白屏、docs: 更新README。这么写的好处是,未来你查看git log时能一眼看出每个提交做了什么,配合自动化发布工具还能直接根据提交类型决定版本号。
第一次提交后,历史里就有了第一个版本。这时你可以试着用git log --oneline查看,会看到一条提交记录。
5.3 关联远程仓库并推送
本地仓库只有你一个人能看到,如果想备份到云端、和同事协作,就需要一个远程仓库。在国内代码托管平台或GitHub上新建一个空仓库,不要在勾选“初始化README”之类选项(避免产生无关联的提交历史),然后会得到两种地址:HTTPS和SSH。
建议用SSH地址,在终端里执行:
bash复制git remote add origin git@github.com:用户名/仓库名.git
origin是远程仓库的默认别名,你可以理解成给这个远程地址起了一个叫“origin”的名字。添加后可查看确认:
bash复制git remote -v
然后推送本地代码到远程:
bash复制git push -u origin main
-u的全拼是--set-upstream,作用是把本地main分支和远程main分支关联起来。之后你在本地执行git push或git pull时,Git就知道该和哪个远程分支同步,不用再指定origin和分支名。
第一次推送时,如果远程仓库里已经有一些文件(比如README),而你本地没有,会提示“failed to push some refs”或“non-fast-forward”。解决办法是先拉取合并再推送:
bash复制git pull origin main --allow-unrelated-histories
--allow-unrelated-histories允许合并两个没有共同提交历史的分支,新手在初始化仓库时如果勾选了README生成,就容易遇到这个情况。
5.4 分支操作:用Git Graph看懂分支合并
分支是Git最核心的思想。你可以把分支理解成一条独立的开发线,主线main上发布稳定版本,功能分支上开发新功能,开发完成后合并回main。
在终端里创建并切换分支:
bash复制git switch -c feature/login
-c表示创建并切换。此时所有提交都会落在feature/login分支上,不影响main。开发完成后,切回main并合并:
bash复制git switch main
git merge feature/login
如果合并没有冲突,Git会直接完成合并,生成一个新的合并提交。
用命令行看分支图会有点吃力,我建议在VSCode里打开Git Graph扩展,点进去就能看到分支树。哪条线是main,哪条线是feature,一目了然。对于新手理解分支模型很有帮助。
5.5 拉取、合并与冲突处理
多人协作时,你的队友可能已经推送了新代码,你本地还是旧版本。这时你需要git pull,把它拉下来。
但如果你本地也改过同一个文件的同一行,就有可能出现冲突。冲突提示大概是这样的:
code复制Auto-merging index.js
CONFLICT (content): Merge conflict in index.js
此时VSCode的源代码管理面板里,冲突文件会变成红色带感叹号,打开文件,会看到这样的标记:
code复制<<<<<<< HEAD
这是你在当前分支的内容
=======
这是被合并分支的内容
>>>>>>> feature/login
处理方式就是手动保留需要的代码,删掉<<<<<<<、=======、>>>>>>>这三行标记。保留完后保存文件,执行:
bash复制git add index.js
git commit -m "merge: 解决冲突"
冲突本身不是错误,它是版本控制的正常防御机制,说明两个分支在同一个地方分叉了。处理几次之后你就会习惯。
6. 高频报错的排查笔记
6.1 “git无法识别”系列问题
这是一个大写加粗的重点,前面提过,但这里值得完整展开。VSCode终端报“无法将‘git’项识别为 cmdlet、函数、脚本文件或可运行程序的名称”,和CMD里报“git不是内部或外部命令”,本质是同一个问题:系统PATH里没有Git。
排查顺序:第一步,按快捷键Win+R,输入cmd回车,在CMD里输入where git。如果能找到路径,说明问题出在VSCode侧,重启VSCode基本能解决。如果找不到,说明PATH配置有问题或Git没装成功。第二步,检查Git安装目录里是否存在cmd\git.exe。第三步,检查系统环境变量的Path变量。这里有一个很多人都会忽略的坑:修改完Path后,旧终端窗口不会自动刷新,必须新开窗口。
还有一类情况:你装了新版Git,但终端里显示的还是旧版本。原因通常是Path变量里同时存在多个Git安装路径(比如之前装过小乌龟TortoiseGit自带的Git,后来又装了官方Git),系统按顺序取了第一个。解决办法是在Path里调整顺序,把官方Git的路径提到前面。
6.2 中文乱码与文件名显示问题
core.quotepath false建议全局配置,我前面已经说过。还有一类乱码是提交信息中出现UTF-8不识别,表现为提交历史里中文变成乱码。解决办法是设置:
bash复制git config --global i18n.commitEncoding utf-8
git config --global i18n.logOutputEncoding utf-8
加上这两个配置后,绝大多数中文乱码问题都会消失。如果终端显示编码还不是UTF-8,在VSCode里点击右下角编码栏,选择“通过编码保存”或“Reopen with Encoding”,切换到UTF-8即可。
6.3 提交历史里的垃圾分支清理
使用一段时间后,本地会积累很多已经合并的分支。热搜词里“vscode清理删除的分支”指的就是这个。我建议定期用以下命令清理已合并的分支:
bash复制git branch --merged | grep -v '*' | xargs git branch -d
这句命令的作用是:列出所有已合并到当前分支的本地分支,过滤掉当前分支(带*的),然后逐个删除。-d只删除已合并分支,安全起见不会强制删除未合并分支。
如果某个分支你确定不要了,使用强制删除git branch -D <分支名>。另外,远程分支清理用:
bash复制git push origin --delete <分支名>
远端已删除、但本地还残留的远程分支信息,可以用:
bash复制git remote prune origin
这样保持本地远程分支列表干净。
6.4 源码泄露风险:注意.git目录与.gitignore
这个点其实在很多教程里被忽略了。Git仓库的核心是.git目录,里面保存了完整的提交历史、配置、甚至你可能误提交过的敏感信息。如果你把网站项目部署到服务器时,把.git目录直接暴露在Web根目录下,访问者完全可以通过https://你的域名/.git/这样的路径下载到你的全部源码。
这不是我的瞎猜,而是实际发生过的安全事件。因此,部署前端项目时一定要确保.git目录不被外部访问;如果是静态托管,构建工具产出的dist目录里本来就不该有.git。如果不小心把包含密码、密钥、API Token的文件提交到了Git仓库,即使删掉文件再提交也没用,历史记录里仍然可以翻出来。这时候要用git filter-repo一类工具清洗历史,然后再把远程仓库里的旧历史彻底覆盖。
预防比清洗简单得多。养成在任何项目初始化后立刻写.gitignore的习惯,把.env、.env.*、config/secret.*、*.key等敏感文件和密钥文件都排除在追踪之外。你永远不想体验那种“代码泄露了,整个团队连夜改密钥”的心情。
6.5 Ctrl+点击跳转失效的真正原因
搜索词里出现“vscode按住ctrl点击方法没跳转”,这个和Git没有直接关系,但在VSCode配置链路里经常连着出现。我还是那句话:所有这类功能都依赖语言扩展,而不是VSCode本身。
对于刚配置好Git环境、准备写Python或C++的新手,最容易忽略的是:你虽然打开了项目文件夹,但VSCode左侧底部显示的解释器依然是系统Python,而不是项目当前使用的虚拟环境。点击状态栏右侧Python版本号,选择正确的解释器,跳转功能大概率就恢复了。
C++环境更麻烦一些,需要安装C/C++扩展,并在配置里指定编译器的include路径。如果代码里包含第三方库,即使装好了扩展,编译器找不到头文件,跳转一样会失败。这时候需要在c_cpp_properties.json里配置includePath,把第三方库的头文件路径加进去。
7. 我总结的实践次序和几个小技巧
写到这里,我觉得可以把我反复试错后形成的一套“实践次序”分享出来。
第一次使用Git时,不必强迫自己把所有命令背下来。先按这个顺序操作:git init初始化,git status看状态,git add .暂存,git commit -m "..."提交。跑通这一轮之后,再去学分支和远程仓库。很多人学Git失败,是因为一上来就背命令,背了几天就忘了。命令是用来解决问题的,不是在记忆里囤积的。
另外,我建议你在VSCode里把源代码管理面板的“自动提取”选项打开。这样每次打开项目时,VSCode会自动检查远程仓库更新,让你在还没点击任何按钮之前就知道有没有新提交要拉取。
还有一个我实际使用后才养成的习惯:每次提交前先查看git status和git diff。git status告诉你有哪些文件变更,git diff告诉你具体修改了什么内容。尤其是提交信息里的“描述”,一定要写清楚这次提交的目的是什么,而不是“update”“修改”“111”。我见过不少团队,代码写得很好,但提交历史全是“fix fix fix”,半年后回查问题根本无从下手。
最后一个小技巧,如果你不小心提交了一个错误信息,但还没推送到远程,使用git commit --amend可以直接编辑上一次提交信息,不留额外提交痕迹。如果已经推送了,就要谨慎使用,因为会改变提交hash,需要强制推送,而强制推送在多人协作时很危险。
Git这个工具,刚开始用的时候会觉得它带来了额外负担,动不动就报错。但只要你坚持用两周,习惯了“改动前看状态、改完看diff、提交写清说明”这个节奏,你就会发现它带来的安全感是任何手动备份都无法替代的。我在实际使用中最大的体会是:Git真正有价值的不是那几条命令,而是它逼着你养成的、对每一次变更负责的习惯。希望这篇记录能帮你把第一步走顺。
