【github】git基础用法 git flow工作模式 常用命令
参考:
https://blog.csdn.net/qq_42780289/article/details/97945300
https://blog.csdn.net/qq_46921028/article/details/114904431
git
基础操作
git主要用来多人代码协同工作,首先进行对git 简单操作进行介绍
首先简单分为三个区:
- workspace:字面意思,可以理解为你目前本地目录是什么样子就是什么样子。
- repository:本地会有一个地方,用来暂存你目前比较确定可以上传到远程的文件
- remote:远程,也就是所有人可以看到的一个公共区域
简单理解为一个是本地区,一个是远程区,但需要有一个地方暂存信息,也就是上面的repo
三个区域如何交互的呢?
这里盗图
每一个区域如何交互一目了然。
大致工作流程:
- 将远程代码pull/clone下来
- 写代码
- commit 到本地的repo去
- 最后Push到远程大家都能看见
但这里还需要引入另外的一个概念,叫做分支
引入分支的理由:如果没有分支,大家都针对远程仓库的这么一个镜像进行同时办公,那么这样的日志会非常凌乱,如果出BUG非常难解决。
所以才有了分支
当然,上面提及,git分为远程与本地,所以分支也有本地与远程之分,有一些分支在本地,有些分支在远程所有人都可见。
分支最主要只有一个master主分支与其他,master必有,其他都是自己人为设定的。
引入分支之后,大致工作流程就变成:
- 将远程master分支clone下来
- 本地根据master分支clone另外一个分支
- 在自己本地创建的分支进行修改
- 改完之后将分支丢到云端
- 在远程对管理员申请pr,将自己分支与master合并
提及了一个新的东西,叫做pr
本地分支可以进行合并操作,而远程分支也可以进行合并,只不过远程大家都需要master分支,所以比价严谨,需要有管理人员完成code review没问题才会进行合并。
git flow
其实就是一套开发准则,好处是回溯文件比较好看。
也就是在master基础上还有一个develop。所有人都针对develop修改,只有最终确定了才修改。
一个功能模块就针对一个feature分支修改。
最后需要准备release开启一个分支,进行测试,如果有问题直接针对release修改,然后合并一下develop。
hotfix在出现临时bug的时候进行开启,即用即删。
在远程应该也只有两个分支,一个master与自己的feature分支,没问题就申请pr,然后管理人员审核进行合并
常用命令
# 远程拉代码
git clone xxx
git pull origin xxx
# 根据name2复制一个分支name1
git checkout -b {branch_name1} {branch_name2}
#切换分支,没有name就是查看所有分支
git branch {branch_name}
# 删除分支
git checkout -d {branch_name}
# 将确定文件加入暂存区
git add {file_name}
# 将add文件加入本地repo并且加上注释
git commit -m '{comment}'
#将name分支与当前所在分支进行合并(本地,--no-ff表示合并规则
git merge --no-ff {branch_name}
# 将当前分支推送到远程
git push origin {branch_name}