git : 免费的开源的分布式版本控制系统。
版本控制:文件修改记录
感觉还是很有必要学习一下的!
Git
Git基础命令:
首次使用设置用户签名:
git config --global user.name 用户名 # 设置用户签名
git config --global user.email 邮箱 #
# 签名的作用是区分不同操作者的身份,用户的签名信息在每一个版本的提交信息中能够看到,从
# 而确认本次提交是谁做的。
# 设置的用户签名和登录GitHub的账号没有任何关系
基础使用命令:
git init
# 初始化本地库git status
# 本地库状态git add test.txt
# 添加暂存区git rm —cached test.txt
# 删除暂存区文件git commit -m "日志信息"
# 将暂存区的文件提交到本地库git reflog
# 查看引用日志信息 7位版本号git log
# 查看详细日志信息,包含提交用户git reset —hard 版本号
# 版本穿梭
多个文件和文件目录的提交
若要提交的项目包含有文件和多个文件夹:
- 在项目的根目录下打开git bash命令窗口,通过
git init
建立本地仓库。 - 将项目添加到本地暂存区
git add .
。 - 提交到本地仓库
git commit -m “注释”
。
若要提交到远程仓库,则使用push命令即可。(空文件夹则不会提交)
commit日志基本格式
<type>(< scope>):<@taskid><subject>
<BLANK LINE>
<body>
type表示本次提交的类型,有如下类型:
feat
: 新增featurefix
: 修复bugdocs
: 仅仅修改了文档,比如ReadMe, Change Log, Contributestyle
: 仅仅修改了代码格式,如空格、格式缩进、都好等等,不修改代码逻辑refactor
: 代码重构,没有添加新功能或修复bugperf
: 优化相关,比如提升性能、体验test
: 测试用例,包括单元测试,集成测试chore
: 改变构建流程,或者增加依赖库,工具等revert
: 回滚到上一个版本
示例:
feat(用户):@taskid,新增登录注册功能
# 新增系统登录功能,可使用邮箱、密码进行用户注册;
# 邮箱发送验证码,验证通过后即可登录。
参考:Git使用——commit规范_Joseph365的博客-CSDN博客
Git 分支
当需要同时推进多个任务,创建每个任务的单独分支,可以同时并行的进行多个功能模块的开发,提高开发效率。
git branch 分支名
# 创建分支git branch -v
# 查看分支git checkout 分支名
# 切换分支git merge 分支名
# 将指定的分支合并到当前分支上
合并冲突:两个分支在同一个文件的同一个位置有两套不同的修改,git
无法替我们决定使用哪一个,必须人为决定新代码内容。
分支规范:
分支类型 | 命名规范 | 创建自 | 合并到 | 说明 |
---|---|---|---|---|
master | master | - | - | 长期分支,部署到生产黄静中的代码 |
develop | develop | - | master | 长期分支,进行代码集成的分支 |
feature | feature/* | develop | develop | 短期分支,新版本分支 |
release | release/* | develop | develop和master | 短期分支,一次新版本的发布 |
hotfix | hotfix/* | master | develop和master | 短期分支,生成环境中发现的紧急bug的修复,唯一可以直接从master分支fork 出来的分支 |
三个短期分支类型一旦完成开发,就会被合并进develop或master,然后被删除。
其他命令:
git branch -D 分支名
# 删除分支:
Git 团队协作
团队内协作:
跨团队协作:
远程协作使用相关命令:
-
git remote -v
# 查看当前所有远程地址别名 -
git remote add 别名 远程地址
# 添加远程仓库地址 别名和库名保持一致最好示例:
git remote add origin SSH地址/HTTPS地址
-
git push 别名 分支
# 推送本地库到远程示例:
git push origin master
-
git pull 别名 分支
# 拉取远程库到本地示例:
git pull origin master
-
git clone 地址连接
# 将远程仓库的代码克隆到本地,并创建本地仓库
别名:即创建仓库的时候所起的别名,一般都是用origin别名
注:
git pull
: 是git fetch
和git merge
命令的一个组合,用于将远程的代码与本地的代码合并。git fetch
只是获取远程代码到本地仓库,git merge
进行融合
clone
:1.拉取代码 2.初始化本地仓库 3.创建别名。用于在当前本地没有代码或仓库时
当远程pull发生冲突时:
- 先使用
git fetch
命令将远程分支拉下来; - 使用
git merge
手动合并冲突的内容; - 然后使用
git add
和git commit
进行添加和提交到本地仓库 - 使用
git push
将本地修改提交到远程分支
Gitee使用
配置SSH
公钥,在git bash
命令窗口中输入:
ssh-keygen -t rsa # 三次回车,会在C:\Users\user 下生成 .ssh文件夹
获取公钥:
方式一:在.ssh
文件夹下使用记事本打开id_rsa.pub
方式二:在上面的git bash
命令窗口中输入:cat ~/.ssh/id_rsa.pub
在Gitee的设置中找到SSH公钥设置,把上面的公钥拷贝到对应的一栏,标题可以随便起。
验证:
在git bash
命令窗口中输入:ssh -T git@gitee.com
Git配合远程仓库使用流程:
- 在本地项目中创建仓库,使用
git init
,git add
和git commit
命令进行初始化,添加到暂存区和提交到本地仓库 - 在远程仓库中创建仓库,并获取远程仓库的地址
- 在本地仓库中,使用
git remote add
命令添加远程仓库地址 - 使用
git push
和git pull
命令,进行本地仓库的推送和远程仓库的拉取
如何写.gitignore
文件
在一个项目中,并不是所有类型的文件或文件夹都需要上传,所以将不需要上传的文件写到gitignore
文件中。
.gitignore
语法:
- 以
"#"
号开头表示注释; - 以斜杠
"/"
开头表示目录; - 以星号
"*"
通配多个字符; - 以问号
"?"
通配单个字符; - 以方括号
"[]"
包含单个字符的匹配列表; - 以叹号
"!"
表示不忽略(跟踪)匹配到的文件或目录。