一.Git 核心概念
-
仓库(Repository):项目存储空间(本地仓库 + 远程仓库)
-
提交(Commit):一次版本变更的快照(含唯一 SHA-1 哈希 ID)
-
分支(Branch) :独立的开发线(默认主分支:
main
或master
) -
标签(Tag):特定提交的标记(常用于版本发布)
-
暂存区(Staging Area) :准备提交的中间区域
二、Git 工作流程
1. 基本工作流
-
初始化 :
git init
或git clone <url>
-
修改文件:在工作目录编辑文件
-
暂存更改 :
git add <file>
或git add .
-
提交版本 :
git commit -m "描述信息"
-
推送远程 :
git push origin <branch>
-
获取更新 :
git pull
(=git fetch
+git merge
)
2.分支工作流
bash
# 创建新分支
git checkout -b feature-login
# 在新分支开发
git add .
git commit -m "添加登录功能"
# 切换回主分支
git checkout main
# 合并功能分支
git merge feature-login
# 删除已合并分支
git branch -d feature-login
三、核心命令详解
1. 配置管理
bash
# 用户配置
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
# 查看配置
git config --list
# 设置默认编辑器
git config --global core.editor "code --wait"
2. 仓库操作
命令 | 功能 |
---|---|
git init |
初始化新仓库 |
git clone <url> |
克隆远程仓库 |
git remote add <name> <url> |
添加远程仓库 |
git remote -v |
查看远程仓库 |
3. 文件操作
命令 | 功能 |
---|---|
git status |
查看文件状态 |
git add <file> |
添加文件到暂存区 |
git reset <file> |
从暂存区移除文件 |
git restore <file> |
丢弃工作区更改 |
git rm <file> |
删除文件并跟踪删除 |
4. 提交历史
命令 | 功能 |
---|---|
git log |
查看提交历史 |
git log --oneline --graph |
简洁历史视图 |
git blame <file> |
查看文件修改历史 |
git diff |
查看未暂存的修改 |
git diff --staged |
查看已暂存的修改 |
5. 分支管理
命令 | 功能 |
---|---|
git branch |
查看分支列表 |
git branch <name> |
创建新分支 |
git checkout <branch> |
切换分支 |
git switch <branch> |
(新)切换分支 |
git merge <branch> |
合并分支 |
git rebase <branch> |
变基操作 |
6. 远程协作
命令 | 功能 |
---|---|
git fetch |
获取远程更新 |
git pull |
拉取并合并远程更新 |
git push |
推送本地提交 |
git push -u origin <branch> |
首次推送并建立追踪 |
四、高级功能
1. 撤销操作
bash
# 修改最后一次提交
git commit --amend
# 撤销工作区更改
git restore <file>
# 重置到指定提交
git reset --soft HEAD~1 # 保留更改在暂存区
git reset --mixed HEAD~1 # 保留更改在工作区(默认)
git reset --hard HEAD~1 # 丢弃所有更改
# 恢复被删除的文件
git checkout HEAD -- <file>
2. 标签管理
bash
# 创建轻量标签
git tag v1.0.0
# 创建含注释的标签
git tag -a v1.1.0 -m "Release version 1.1.0"
# 推送标签到远程
git push origin --tags
# 检出标签版本
git checkout v1.0.0
3.设置全局换行符处理
bash
# Windows 推荐(检出时 CRLF,提交时 LF)
git config --global core.autocrlf true
# Linux/macOS 推荐(检出时不转换)
git config --global core.autocrlf input
# 完全禁用转换
git config --global core.autocrlf false
五、Git 工作流模型
1. Git Flow

-
main
:稳定生产代码 -
develop
:最新开发代码 -
feature/
:功能开发分支 -
hotfix/
:紧急修复分支
2. GitHub Flow
-
从
main
创建分支 -
添加提交
-
创建 Pull Request
-
审查合并代码
-
立即部署
3. GitLab Flow
-
环境分支:
production
→staging
→main
-
基于发布的分支管理
4. .gitignore 文件
bash
# 忽略所有日志文件
*.log
# 忽略node_modules目录
node_modules/
# 忽略编译产物
/build/
/dist/
# 忽略系统文件
.DS_Store