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