目录
1. Git 基础概念
- 仓库(Repository):存储项目代码和版本历史的目录。
- 工作区(Working Directory):本地修改文件的目录。
- 暂存区(Staging Area):临时保存待提交的修改。
- 提交(Commit):将暂存区的修改永久保存到版本历史。
- 远程仓库(Remote):托管在服务器(如 GitHub/GitLab)的仓库副本。
2. 常用命令详解
git init
- 用途:初始化一个新的 Git 仓库。
- 命令:
git init
- 原理:在项目根目录创建隐藏的 `.git` 文件夹,用于存储版本信息。
---
### `git add`
- 用途:将工作区的修改添加到暂存区。
- 命令:
```bash
# 添加所有修改(包括新增、修改、删除)
git add .
# 添加特定文件
git add file1.txt file2.js
# 添加所有修改(包括子目录)
git add -A
- 为什么需要暂存区:允许选择性提交部分修改,而非一次性提交所有改动。
git commit
- 用途:将暂存区的修改提交到本地仓库。
- 命令:
git commit -m "提交说明" - 提交说明规范:
- 首行简明描述(不超过50字)
- 空一行后补充详细说明(可选)
- 示例:
feat: 添加用户登录功能 - 实现 JWT 认证 - 添加登录页面路由
- 原理:每个提交生成唯一的 SHA-1 哈希值,记录作者、时间戳和修改内容。
git remote
- 用途:管理远程仓库的关联。
- 常用命令:
# 添加远程仓库(通常命名为 origin) git remote add origin https://github.com/user/repo.git # 查看已关联的远程仓库 git remote -v # 删除远程仓库关联 git remote remove origin - 为什么需要:本地仓库与远程仓库同步的基础。
git fetch
- 用途:从远程仓库下载最新代码,但不合并到本地。
- 命令:
git fetch origin main - 适用场景:查看他人提交的修改,但不想立即合并到工作区。
git pull
- 用途:拉取远程仓库最新代码并自动合并到当前分支。
- 命令:
git pull origin main - 等价操作:
git fetch+git merge - 冲突处理:如果本地有未提交的修改,需先提交或暂存(
git stash)。
git push
- 用途:将本地提交推送到远程仓库。
- 命令:
git push origin main - 错误处理:若远程有更新,需先执行
git pull解决冲突。
3. 工作流程解析
典型协作流程
git pull→ 拉取最新代码- 修改文件 → 在工作区编辑
git add→ 添加到暂存区git commit→ 提交到本地仓库git push→ 推送到远程仓库
4. 常见问题与技巧
问题1:提交信息写错了怎么办?
git commit --amend -m "新的提交信息"
问题2:撤销未提交的修改
# 撤销工作区所有修改(危险!)
git checkout -- .
# 撤销特定文件的修改
git checkout -- file.txt
技巧:别名配置
在 ~/.gitconfig 添加:
[alias]
co = checkout
cm = commit -m
st = status
5. 推荐学习资源
- 官方文档:git-scm.com/doc
- 图形化工具:GitKraken、Sourcetree
- 交互式学习:Learn Git Branching