Git操作实战
本文主要从建立仓库🏡、仓库克隆👀、多人协作😎、分支管理🌾、提交规范🎈五个方面,面向实际使用的角度总结了git操作,覆盖了绝大部分使用场景。
本文阅读完后可以应付绝大部分git操作,类似版本回退、多分支协作等一些不常用操作读者可以自行了解✌️
本文以CSDN的GitCode为例进行实操👊讲解,仓库为公有,大家可以随意进行push、pull等git操作的联系
浅浅求个关注✨✨✨
1. 建立仓库🏡
进入GitCode官网,地址:https://gitcode.net/dashboard/projects/home
点击New Project
点击Create blank project即可进入仓库创建页面
简要概述一下这几个选项
- Project name: 仓库名称,中英文都可以
- Project slug: 仓库url名称,只能英文
- Project description: 仓库描述
- Project tags: 仓库标签
- Visibility Level: 仓库可见性,Privite就是私有仓库,Public就是公有仓库
- Initialize res…: 是否初始化README,勾选就会创建一个README.md的文件
点击Create project
仓库新建完毕,地址:https://gitcode.net/m0_66681776/test
2. 仓库克隆👀
下载git
下载地址:https://git-scm.com/downloads,
点击download for windows
,
采用next
安装法😗
设置全局用户名与邮箱
git config --global user.name 'xxx'
git config --global user.name xxxx@xx.com
拉取仓库
git clone https://gitcode.net/m0_66681776/test
仓库克隆完毕
3. 多人协作
建一个测试文件hello.txt
制造冲突
如果是个人项目,不需要进行协作,可以直接add+commit+push,但是多人协作就必须考虑到代码的冲突💥
我们在网页端人为创建一个文件,此时原创git仓库和本地仓库就产生了冲突💥
解决冲突
由于远程仓库和本地仓库不一致,需要使用暂存操作暂存本次更改,再进行fetch+merge拉取远程仓库的修改,然后pop弹出暂存栈,就可以正常进行add+commit+push了
暂存更改
- git stash
拉取远程仓库 - git fetch origin master
- git merge origin master
换源更改 - git stash pop
提交更改 - git add .
- git commit -m “xxxx”
- git push origin master
GitCode有点奇怪,需要使用token,而不是用户名和密码
查看远程仓库
4. 分支管理
新建分支
git branch test
查看全部分支
切换分支
git checkout test
在当前分支进行提交
需要注意的是git push 要用test(分支名)
查看远程仓库
主分支上没有hello222.txt
切换分支为test后可以看见hello222.txt
合并test分支进master
- git checkout master 切换为主分支
- git merge test 合并test到主分支
- git add + commit + push 常规操作
出错的原因是远程是master,而不是main,引以为戒
查看远程主分支
5. 提交规范
使用commitizen进行提交的格式化
全局安装
npm install -g commitizen
初始化
commitizen init cz-conventional-changelog --save --save-exact
规范化提交
先写一个.gitignore用来忽略node_modules文件夹
echo '/node_modules' > .gitignore
执行git add
此时不再需要git commit,改用git cz,进入命令行提示
Header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。
(1)type
type用于说明 commit 的类别,只允许使用下面7个标识。
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
如果type为feat和fix,则该 commit 将肯定出现在 Change log 之中。其他情况(docs、chore、style、refactor、test)由你决定,要不要放入 Change log,建议是不要。
(2)scope
scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
(3)subject
subject是 commit 目的的简短描述,不超过50个字符。
以动词开头,使用第一人称现在时,比如change,而不是changed或changes
第一个字母小写
结尾不加句号(.)