开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情
前言
本篇文章主要讲一下在本系列文章的项目中 git
的一些常用操作。因为较为基础,且有众多图形化管理工具,本未计划单独写篇文章聊这些内容,但我昨天发觉在文章对应的模块会有涉及到代码分支的处理,且可能存在新人对此不了解,所以写了这篇文章,聊一聊在日常项目中,该如何使用 git
进行代码或文件的管理。
本文较为基础,不会涉及太复杂的 git
操作。
git 与 gitee
1. 什么是 git
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
以 windows 操作系统为例,git
执行初始化命令 git init
后会在项目文件夹中创建一个 .git
的隐藏文件夹,该文件夹内容如下:
├── hooks // shell 脚本
├── info //
│ └── exclude // 忽略文件,.gitignore 的本地版
├── logs // git 更新引用记录
├── objects // 所有文件的存储对象
├── refs // 保存当前最新的一次提交的哈希值
├── COMMIT_EDITMSG // 存储 git commit -m "message" 命令的 message
├── config // 配置文件,如用户信息、远程仓库地址等
├── description // 指向当前工作区的分支
├── FETCH_HEAD // 远程仓库操作相关
├── description // 仓库描述信息
├── HEAD // 当前分支指针
├── index // 暂存区索引
├── ORIG_HEAD // 危险操作备份
如果你以上文件不了解或者不想了解也没什么关系,只要知道 git
就是通过这些文件,实现了对代码或文件变更的管理。
2. 什么是 gitee
gitee.com 是基于 Git
的代码托管和研发协作平台。
无论是个人还是多人协作,我都建议将代码放到云端托管,这样只要有台电脑,就可获取到最新的代码或文件,也不必担心电脑磁盘异常或者误删除操作导致文件丢失。
为何不选择 github
呢?主要是网络问题,经常不可访问。本系列文章为避免此问题,选择了国内的 gitee
。当然,coding.net
也是不错的选择。
3. 项目使用到的 git 命令
本项目是对一个项目0到1的实现过程的分解,所以在每一篇涉及到代码的文章,都会在 gitee
上创建一个分支进行管理,如上一篇讲三方组件使用的文章,对应创建了一个 component
分支,该分支基于 master
主线分支创建,在分支代码完成提交后,我们需要将分支代码再合并到主线分支中。完整流程如下:
- 登录
gitee.com
创建分支,例如component
- 本地
git
执行获取远程分支命令
成功后会有一条提示git pull
* [new branch] component -> origin/component
(前方有*
表示该分支为远程分支) - 创建本地
component
分支并与远程分支关联git checkout --track origin/component
本地无此分支,该命令会在本地创建该分支并与命令中的远程分支对应
- 代码开发
- 将本地代码提交到远程分支仓库
git add . // 将本地代码添加到缓存区 git commit -m "message" // 将缓存区代码添加到本地仓库 git pull // 获取最新的远程代码,如果远程无更改,此操作非必须 git push // 将代码提交到远程仓库
- 将代码合并到
master
主线
此时,在git checkout master // 切换到主分支 git pull // 获取最新的远程代码,如果远程无更改,此操作非必须 git merge component // 将 copmponent 分支代码合并到当前分支 git push // 将合并后的代码提交到远程仓库
gitee
上即可看到一条代码提交的动态。 - 至此,我们已将新的分支代码提交到远程仓库并合并到主线,下次开发新的功能也会按此步骤操作。这样的优点是每个模块都会有对应的代码管理,而我们要修改哪个模块,可以在对应的分支上进行修改,最后再合并到主线上。
个人感觉这种方式就像搭积木一样,便于每个模块的代码管理,与组件思想有相通的地方。
4. 其它常用命令
除以上命令外,git 还有其它的一些常用命令:
- 分支相关
git branch xxx // 创建本地分支 git branch // 查看本地所有分支 git branch -a // 查看本地和远程所有分支 git checkout xxx // 切换本地分支 git branch -d xxx // 删除本地分支
- 查看状态
git status // 查看被修改的文件状态(文件已被修改,但未被 commit)
最后
本篇文章只是浅显的介绍了本地 git
与远程仓库结合的一些常用命令,由于这个系列的项目是我一人开发,所以不存在文件冲突的情况,个人建议在了解这些常用命令的同时,还是应该选择一款可视化的 git
操作工具,我个人习惯使用 VSCode
编辑器,所以日常也会用它的 git
插件去可视化处理一些代码合并冲突等问题。可视化的操作在日常多人协作的项目中,能达到事半功倍的效果。