Git安装以及使用
Git是一款分布式版本控制工具,核心解决多人代码协作、版本追溯回滚、本地与远程仓库同步问题,是开发必备基础工具。本文从安装、配置到核心命令、实战流程全解析,新手可直接跟着操作。
一、Git下载
1.Git官方下载
✅ 提示:根据自己的系统(Windows/Mac/Linux)选择对应安装包,默认安装即可,无需修改额外配置。
2.GitHub汉化插件
🌟 适用:刚接触GitHub的新手,安装后可将GitHub界面转为中文,降低操作门槛。
二、Git常用命令速查(附注意事项)
| 命令分类 | Git 命令 | 核心作用 | 备注/注意事项 |
|---|---|---|---|
| 基础配置 | git config --global user.name "你的用户名" | 配置全局提交者姓名,所有本地仓库生效 | 需与GitHub用户名一致,否则提交记录归属异常 |
git config --global user.email "你的邮箱" | 配置全局提交者邮箱,关联代码托管平台记录 | 需与GitHub绑定邮箱一致 | |
git config --list | 查看所有Git配置信息,验证配置是否生效 | 配置后执行,确认用户名/邮箱正确 | |
| 仓库操作 | git init | 初始化本地空仓库,生成隐藏.git文件夹 | 进入项目根目录后执行 |
git clone <远程仓库地址> | 克隆远程仓库到本地,自动初始化并关联远程 | 直接获取完整项目代码,无需手动init | |
git clone <远程地址> <本地文件夹名> | 克隆远程仓库并指定本地文件夹名称 | 自定义项目本地名称,适用于重名场景 | |
| 核心工作流程 | git status | 查看工作区/暂存区状态(新增/修改/未追踪) | 新手建议频繁使用,实时掌握文件状态 |
git add <文件名> | 将单个文件从工作区添加到暂存区(待提交) | 精准提交指定文件,避免多余文件纳入 | |
git add . | 将当前目录所有修改文件加入暂存区 | 日常开发高频使用,快速提交所有变更 | |
git reset <文件名> | 将暂存区文件撤销回工作区,保留本地修改 | 仅取消待提交标记,不删除文件内容 | |
git commit -m "清晰提交说明" | 将暂存区文件提交到本地仓库,生成版本记录 | 提交说明需简洁明确(如“完成登录功能开发”) | |
git commit --amend | 修改最近一次提交说明/补充漏加的修改文件 | 未推送到远程时使用,避免多余提交记录 | |
git checkout -- <文件名> | 丢弃工作区文件修改,恢复到最新版本 | ⚠️ 未暂存的修改会直接丢失,谨慎使用 | |
git rm <文件名> | 删除工作区文件并将操作加入暂存区 | 提交后会从本地仓库彻底移除文件 | |
git rm --cached <文件名> | 取消Git追踪,保留本地文件 | 适用于配置文件、日志文件等无需追踪的文件 | |
| 分支操作 | git branch | 查看本地所有分支,当前分支带*标记 | 快速确认当前工作分支 |
git branch <分支名> | 基于当前分支创建新本地分支(仅创建不切换) | 如git branch dev,基于main创建开发分支 | |
git checkout <分支名> | 切换到指定本地分支 | ⚠️ 切换前需提交/暂存当前分支未完成修改 | |
git checkout -b <分支名> | 创建新分支并直接切换,合并上述两个命令 | 开发新功能首选,如git checkout -b dev | |
git merge <分支名> | 将指定分支代码合并到当前分支 | 如git merge dev,将开发分支合并到主分支 | |
git branch -d <分支名> | 删除本地已合并的分支 | 未合并会提示,防止误删有效代码 | |
git branch -D <分支名> | 强制删除本地分支 | ⚠️ 不可逆,删除前确认代码已备份/合并 | |
git push -u origin <分支名> | 推送本地新分支到远程并建立关联 | 首次推送新分支专用,后续直接用git push | |
git push origin --delete <分支名> | 删除远程仓库中的指定分支 | 需确认远程分支已无有效代码 | |
| 远程仓库交互 | git remote | 查看本地关联的远程仓库别名(默认origin) | 快速确认远程仓库别名 |
git remote -v | 查看远程仓库拉取/推送地址,验证关联正确性 | 确认地址为SSH格式(免密)或HTTPS格式 | |
git remote add origin <远程地址> | 将本地仓库关联到远程仓库,origin为自定义别名 | 本地init后执行,关联GitHub/Gitee仓库 | |
git pull | 拉取远程最新代码并自动合并到本地当前分支 | 等价于git fetch + git merge,开发前先pull | |
git push | 将本地当前分支提交推送到远程对应分支 | 已建立分支关联后高频使用 | |
| 日志与版本追溯 | git log | 查看详细提交日志(提交者/时间/哈希/说明) | 完整展示版本历史,信息最全面 |
git log --oneline | 一行简洁显示日志(7位哈希+提交说明) | 日常快速查看版本,高频使用 | |
git log --graph | 图形化显示提交日志,展示分支合并历史 | 清晰看到分支创建、合并的版本走向 | |
git reflog | 查看所有Git操作记录(含已撤销/删除分支) | ✅ 找回误删版本/分支的核心命令,必记 | |
| 辅助命令 | git stash | 暂存未提交修改,让工作区回到干净状态 | 临时切换分支时使用,保留当前开发进度 |
git stash list | 查看所有储藏的修改记录,每条有唯一标识 | 确认暂存的修改记录 | |
git stash pop | 恢复最近一次暂存的修改并删除暂存记录 | 切换回原分支后使用,快速恢复开发进度 | |
git diff | 查看工作区与暂存区的文件差异 | 未执行git add时,检查修改的具体内容 | |
git diff <分支1> <分支2> | 查看两个分支之间的文件差异 | 合并分支前使用,确认修改内容无冲突 |
三、GitHub SSH密钥配置(免密访问)
配置SSH密钥后,本地与GitHub交互无需反复输入账号密码,是开发的必备配置,步骤如下:
打开Git Bash(安装Git后自带程序,Windows在开始菜单查找,Mac直接打开终端);
先配置Git全局信息(与GitHub一致),执行以下命令:
1
2git config --global user.name "你的GitHub用户名"
git config --global user.email "你的GitHub绑定邮箱"生成SSH密钥,执行命令后连续按三次回车键(默认配置即可,无需设置密码):
1
ssh-keygen -t rsa -C "你的GitHub绑定邮箱"
查找密钥文件:
Windows:
C:\Users\你的电脑用户名\.ssh目录下,找到id_rsa.pub文件;Mac/Linux:终端执行
cd ~/.ssh进入目录,cat id_rsa.pub可直接查看密钥内容;
复制密钥:用记事本/文本编辑器打开
id_rsa.pub,复制文件内全部内容(不要遗漏任何字符);配置GitHub密钥:
登录GitHub,点击右上角头像 → 选择Settings;
左侧菜单栏找到SSH and GPG keys → 点击New SSH key;
标题栏自定义(如“KeyPub”),将复制的密钥粘贴到Key输入框 → 点击Add SSH key完成创建;
验证连接是否成功(关键步骤):
回到Git Bash/终端,执行以下命令,出现问候语即配置成功:1
ssh -T git@github.com
✅ 成功提示:
Hi 你的用户名! You've successfully authenticated, but GitHub does not provide shell access.
四、Git实战核心流程(新手必看)
场景1:本地新建项目,推送到GitHub
1 | # 1. 新建项目文件夹并进入 |
场景2:分支协作开发(日常开发主流方式)
1 | # 1. 基于main分支创建并切换到dev开发分支 |
五、新手常见问题与避坑指南
问题1:git push提示「权限拒绝(Permission denied)」
- 原因:SSH密钥配置错误、远程仓库地址为HTTPS格式、密钥未添加到GitHub;
- 解决:① 验证SSH连接(执行
ssh -T git@github.com);② 将远程地址改为SSH格式(git remote set-url origin git@github.com:用户名/仓库名.git)。
问题2:切换分支提示「工作区有未提交的修改」
- 原因:当前分支有未add/未commit的修改,Git防止分支切换丢失代码;
- 解决:① 若需保留修改:执行
git stash暂存,切换后用git stash pop恢复;② 若无需保留:执行git checkout -- .丢弃所有修改。
问题3:git merge合并时出现「冲突(conflict)」
- 原因:多分支修改了同一文件的同一行内容,Git无法自动合并;
- 解决:① 执行
git status查看冲突文件;② 打开冲突文件,手动编辑<<<<<<< HEAD(当前分支内容)、=======(分隔符)、>>>>>>> 分支名(待合并分支内容),保留正确代码并删除标记;③ 编辑完成后执行git add 冲突文件名 && git commit -m "解决合并冲突"。
问题4:误删分支/误提交,想找回历史版本
- 解决:执行
git reflog查看所有操作记录,找到目标版本的7位哈希值,执行git reset --hard 哈希值即可回滚到指定版本(未推送到远程时使用)。
问题5:不想让Git追踪某些文件(如node_modules、日志)
解决:在项目根目录新建
.gitignore文件,写入需忽略的文件/目录,示例:1
2
3
4
5
6
7# 忽略node_modules文件夹
node_modules/
# 忽略所有.log日志文件
*.log
# 忽略IDE配置文件
.vscode/
.idea/
六、拓展学习(进阶必备)
- .gitignore配置:掌握通用忽略规则,避免提交无用文件,可搜索「Git忽略文件模板」直接复用;
- 进阶命令:
git reset --hard(版本回滚)、git cherry-pick(跨分支复用单个提交)、git fetch(拉取远程代码不自动合并); - 图形化工具:SourceTree、GitKraken,可视化操作Git,降低命令行操作难度;
- 官方文档:,权威且全面,解决高阶问题。
总结
Git的核心使用逻辑围绕「工作区→暂存区→本地仓库→远程仓库」 展开,新手先掌握核心命令:git add/git commit/git pull/git push,再逐步学习分支协作和版本追溯。
分支开发是团队协作的标准方式,牢记「开发在分支,合并回主分支」 原则,配合SSH免密配置,能大幅提升开发效率。遇到问题先执行git status/git reflog,大部分问题都能快速定位解决。




