一、Git 核心概念
1. 版本控制系统 (VCS)
-
记录文件变化,可随时回退到任意版本
-
多人协作开发的必备工具
2. 仓库 (Repository)
-
代码存储的地方,分为:
-
本地仓库:你电脑上的代码库(自己编辑的地方)
-
远程仓库:GitHub、Gitee 等平台上的代码库(和其他人员共享/合作)
-
3. 三大区域
-
工作区 (Working Directory):实际操作文件的目录
-
暂存区 (Staging Area):临时存放要提交的文件
-
版本库 (Repository):存放提交历史
工作区(Working Directory) → 暂存区(Staging Area) → 仓库(Repository)
↓ ↓ ↓
你修改的文件 git add 添加的文件 git commit 提交的文件
二、Git 安装与配置
1. 安装 Git
-
Windows: 下载 Git for Windows
-
Mac:
brew install git -
Linux:
sudo apt-get install git
2. 基本配置
# 配置用户名
git config --global user.name "你的名字"
# 配置邮箱
git config --global user.email "你的邮箱"
# 查看配置
git config --list
三、Git 核心命令
1. 仓库初始化与克隆
# 初始化新仓库
git init
# 克隆现有仓库
git clone https://github.com/用户名/仓库名.git
2. 文件状态与提交
# 查看当前状态
git status
# 添加文件到暂存区
git add 文件名 # 添加单个文件
git add . # 添加所有文件
git add *.js # 添加所有js文件
# 提交更改
git commit -m "提交说明"
# 一次完成添加和提交(新文件除外)
git commit -am "提交说明"
3. 分支管理
# 查看分支
git branch # 查看本地分支
git branch -a # 查看所有分支(包括远程)
# 创建分支
git branch 分支名
# 切换分支
git checkout 分支名
# 创建并切换到新分支
git checkout -b 新分支名
# 合并分支
git checkout main # 先切换到主分支
git merge 分支名 # 合并指定分支到当前分支
# 删除分支
git branch -d 分支名 # 删除本地分支
4. 远程仓库操作
# 添加远程仓库
git remote add origin 远程仓库地址
# 推送到远程仓库
git push -u origin 分支名 # 首次推送
git push # 后续推送
# 拉取远程更新
git pull origin 分支名
# 获取远程更新(不合并)
git fetch
# 查看远程仓库
git remote -v
5. 查看历史与回退
# 查看提交历史
git log
git log --oneline # 简洁版
git log --graph # 图形化显示
# 回退到指定版本
git reset --hard 版本号
# 撤销工作区的修改
git checkout -- 文件名
# 撤销暂存区的文件
git reset HEAD 文件名
四、Git 工作流示例
日常开发流程:
不是应该先到master拉取代码,再checkout?
# 1. 开始新功能
git checkout -b feature-new-feature
# 2. 开发代码...
# 修改文件
# 3. 查看状态
git status
# 4. 添加更改
git add .
# 5. 提交
git commit -m "添加新功能"
# 6. 推送到远程
git push origin feature-new-feature
# 7. 完成后合并到主分支
git checkout main
git pull origin main
git merge feature-new-feature
git push origin main
五、重要概念详解
1. .gitignore 文件
-
指定哪些文件/文件夹不被 Git 跟踪
-
例如:
node_modules/、.env、*.log
2. 冲突解决
-
当多人修改同一文件时可能出现
-
需要手动解决冲突后重新提交
3. Stash 暂存
# 临时保存未提交的更改
git stash
# 恢复暂存的内容
git stash pop
六、实用技巧
1. 别名设置(简化命令)
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
2. 常用组合命令
# 简化工作流
git add . && git commit -m "更新"
git pull && git push
七、学习建议
-
从简单开始 :先掌握
init、add、commit、push、pull -
多用 git status:随时查看当前状态
-
分支管理:每个新功能开一个新分支
-
提交信息规范:写清晰的提交说明
-
勤推送:经常推送到远程仓库备份
常见面试问题
如果两个人同时修改同一行代码怎么办
reset和revert有什么区别
如果A功能还没写完,领导突然要求先写B功能怎么办?
stash暂存,stash pop变出来