1. Git 基础
核心概念
- 仓库(Repository):存储项目代码和历史记录的目录。
- 提交(Commit):记录代码变更的快照,包含唯一哈希值、作者、时间和提交信息。
- 分支(Branch) :独立开发线,默认分支通常为
main
或master
。 - 合并(Merge):将一个分支的变更整合到另一个分支。
- 拉取/推送(Pull/Push):从远程仓库获取更新或将本地变更推送到远程。
常用命令
bash
# 初始化仓库
git init
# 克隆远程仓库
git clone <仓库URL>
# 查看状态
git status
# 添加文件到暂存区
git add <文件名> # 或 git add .
# 提交变更
git commit -m "提交信息"
# 查看提交历史
git log
# 创建分支
git branch <分支名>
# 切换分支
git checkout <分支名> # 或 git switch <分支名>
# 合并分支
git merge <分支名>
# 拉取远程更新
git pull origin <分支名>
# 推送本地变更
git push origin <分支名>
2. GitHub/GitLab 的核心功能
共同点
- 远程仓库托管:存储代码并支持多人协作。
- Pull/Merge Request:提交代码变更请求,团队成员审核后合并。
- Issue 跟踪:管理任务、Bug 报告和需求。
- CI/CD 集成:自动化测试和部署(如 GitHub Actions、GitLab CI)。
平台差异
功能 | GitHub | GitLab |
---|---|---|
免费私有仓库 | 有限(现为免费) | 一直免费支持 |
内置 CI/CD | GitHub Actions | GitLab CI/CD |
社区生态 | 更庞大(开源项目首选) | 企业级功能更丰富 |
部署灵活性 | 需第三方工具(如 Vercel) | 内置 Kubernetes 集成 |
3. 典型工作流程示例
场景:修复 Bug 并提交
-
本地操作 :
bashgit checkout -b fix-bug-123 # 创建并切换到新分支 git add . # 修改代码后暂存 git commit -m "修复Bug #123" git push origin fix-bug-123 # 推送到远程
- 平台操作 :
- 在 GitHub/GitLab 创建 Pull/Merge Request。
- 团队成员评审代码,通过后合并到
main
分支。
4. 高级技巧
-
撤销变更 :
bashgit reset --soft HEAD~1 # 撤销提交但保留更改git checkout -- <文件> # 丢弃文件修改
-
交互式变基 (合并/重排提交):
bashgit rebase -i HEAD~3
-
子模块(Submodule) :嵌套管理其他 Git 仓库。
bashgit submodule add <仓库URL>
5. 常见问题
- 冲突解决 :合并时编辑冲突文件 →
git add
→git commit
。 - 忽略文件 :创建
.gitignore
文件,列出需忽略的文件/目录(如node_modules/
)。 - SSH 密钥配置:避免每次输入密码,生成密钥并添加到平台账户。