Git 的正确使用姿势与最佳实践:团队协作和版本控制的最佳实践 | 青训营

72 阅读3分钟

本文记录git入门常见操作流程

Git基础

Git是一个分布式版本控制系统,分布式版本控制系统它相较于本地版本控制(本地保存多个副本)的方式不易混淆,相较于集中化的版本控制系统(CVCS)更能保证数据安全性与完整性,客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录。 Git中文件有三种状态:已提交(committed)、已修改(modified)和已暂存(staged)。

  • 已修改:修改了文件,但还没保存到数据库中。
  • 已暂存:对一个已修改文件的当前版本做了标记,使之包含在下次提交中。
  • 已提交:数据已经安全地保存在本地数据库中。

image.png Git项目分为工作区、暂存区以及仓库区三部分,其中:

  • 工作区为我们进行开发的地方。
  • 暂存区存储了被git记录的修改
  • 仓库区存储已经被提交的修改

下载安装

官网下载:nju.fanya.chaoxing.com/portal

配置

安装完git后,需要设置你提交时使用的用户名和邮件地址;(使用 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息)

$ git config --global user.name "xxhhy"
$ git config --global user.email xxhhy@example.com

使用git config --list命令列出所有配置,检查配置。

创建分支

使用分支操作可以将我们的工作从主线开发上分离开,如只在master分支上保留完全稳定的代码,而将develop分支用于开发,当develop分支稳定时再合并入master分支。使用git branch xxx命令创建新分支,使用git checkout xxx将当前分支切换为新创建的xxx分支,在该分支下进行开发与提交。

当develop分支稳定(阶段性功能开发完成且通过测试后),可将其合并入master分支。通过git checkout master进入master分支,使用git merge xxx,将xxx分支合并入master分支中。

其余常用操作有使用git brach命令查看当前所有分支的列表、使用git branch -d xxx删除xxx分支。

拉取

使用git clone命令将远程已有的仓库拉取到本地:

git clone git@github.com:用户名/仓库名.git

使用git fetch获取远程仓库的最新版本到本地(不会自动merge),或使用git pull从远程获取最新版本并merge到本地。

git fetch origin master
git pull origin master

提交

使用git add xxx命令来添加修改到暂存区, .表示添加当前目录下所有改动过的文件。

git add .
git add 单个文件
git add 文件夹/ 文件夹2/

使用 git commit -m "message" 的时候,暂存区的修改会被应用并且被记录为一个提交。

使用git push将暂存区的提交推送到远程仓库,push时可以要选择要push的分支:

git push -u origin master

使用git log查看提交记录。

commit规范

提交commit时,应遵循<type>: <subject>的规范:

  • feat: 新功能
  • fix: 修复bug
  • docs: 文档变更
  • style: 代码格式 (不影响代码运行的变动)
  • refactor: 代码重构
  • perf: 改善性能
  • test: 测试相关
  • chore: 构建或辅助工具的变动 如:
git add .
git commit -m "feat: 添加用户登录功能"

冲突

有时候合并操作不会如此顺利。 如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,合并时就会产生冲突。 使用 git status 命令来查看那些因包含合并冲突而处于未合并(unmerged)状态的文件,手动修改其中冲突的部分,待冲突解决后再次merge。