1. 初始化和配置
-
初始化仓库: 使用
git init初始化一个新的 Git 仓库。 -
全局配置: 使用
git config设置全局用户名和邮箱,以便每次提交时自动使用这些信息。git config --global user.name "Your Name" git config --global user.email "youremail@example.com"
2. 仓库克隆和分支管理
-
克隆仓库: 使用
git clone克隆远程仓库到本地。git clone https://github.com/username/repo.git -
创建和切换分支: 使用
git branch创建新分支,使用git checkout切换分支。git branch feature-x git checkout feature-x -
跟踪远程分支: 使用
git branch -u origin/master设置本地分支跟踪远程分支。
3. 日常提交和更新
-
查看状态: 使用
git status查看当前工作目录的状态。 -
添加文件: 使用
git add添加文件到暂存区。git add filename -
提交更改: 使用
git commit提交暂存区的更改到本地仓库。git commit -m "Add new feature" -
拉取更新: 使用
git pull从远程仓库拉取最新更改并合并到本地分支。git pull origin master -
推送更改: 使用
git push将本地分支的更改推送到远程仓库。在将代码合并回主分支之前,应该邀请其他团队成员进行代码审查。他们可以提供有益的反馈和建议,有助于发现潜在的问题并改进代码。git push origin feature-x
4. 团队协作
-
代码审查: 在合并到主分支前,进行代码审查以确保代码质量和项目标准。
-
合并和冲突解决: 使用
git merge合并分支,解决可能出现的合并冲突。git merge feature-x -
使用合并请求(MR)/拉取请求(PR): 在GitHub、GitLab或Bitbucket等平台上使用MR/PR来请求合并代码,这样可以在合并前进行讨论和审查。
5. 版本控制最佳实践
-
小而频繁的提交: 保持提交的原子性,每个提交只包含相关的更改。
-
有意义的提交信息: 编写清晰、描述性的提交信息,便于理解和回溯。
-
保持历史清晰: 定期使用
git rebase清理提交历史,但避免在公共分支上进行。 -
标签管理: 每次发布一个稳定的版本时,都应该在主分支上打上一个标签。标签可以标识出特定版本的代码,方便将来回溯查看和部署。建议使用版本号规范,如“X.Y.Z”格式,其中 X 表示大版本号,Y 表示中版本号,Z 表示小版本号。当修复漏洞或增加新功能时,可以增加小版本号;当新增重要功能或修改重要 bug 时,可以增加中版本号;当进行全面升级时,可以增加大版本号。
-
使用
git tag为发布和重要版本打标签。git tag -a v1.0.0 -m "Release version 1.0.0" git push origin v1.0.0 -
避免直接在主分支上工作: 总是在特性分支上工作,完成后再合并到主分支。直接在主分支上提交代码可能导致代码冲突增加,不利于团队协作和代码稳定性。
-
保护主分支: 在CI/CD流程中设置保护规则,防止未经过审查的代码合并到主分支。
6. 代码备份和安全
- 定期备份: 定期备份你的代码仓库,以防数据丢失。同时,将代码推送到远程仓库,如GitHub、GitLab或Bitbucket,有助于团队成员共享和协作。不要只依赖于本地仓库。
- 安全访问: 使用SSH密钥或双因素认证(2FA)来增强仓库的安全性。
7. 文档和规范
- 编写文档: 为项目编写清晰的文档,包括README、贡献指南和代码规范。
- 统一代码风格: 制定代码风格指南,并使用工具如
.editorconfig和eslint等来强制执行。
通过遵循这些最佳实践,团队可以更有效地协作,同时保持代码的整洁和项目的可维护性。