Git教程:https://www.runoob.com/git/git-tutorial.html
Git大全:Git 大全 - Gitee.com
Git分支管理一种适合小团队的Git协作流程 - 知乎 (zhihu.com)
[GitHub 的 Fork 是什么意思? - 知乎 (zhihu.com)](https://www.zhihu.com/question/20431718/answer/74250205?utm_campaign=shareopn&utm_medium=social&utm_oi=956091062167609344&utm_psn=1645709761986416640&utm_source=wechat_session)
1.Git基本操作
1.Git三大分区的概念
Git 本地数据管理,大概可以分为三个区,工作区,暂存区和版本库。
- 工作区(Working Directory)
是直接编辑的地方,肉眼可见,直接操作。 - 暂存区(Stage 或 Index)
数据暂时存放的区域。 - 版本库(commit History)
存放已经提交的数据,push 的时候,就是把这个区的数据 push 到远程git仓库了。
下图各区之间的数据传递流程示意图。
2.Git版本管理
git对比命令
git diff 工作区 vs 暂存区
git diff head 工作区 vs 版本库
git diff –cached 暂存区 vs 版本库
(1)刚开始,什么操作都没有,三个区的数据是一致的,执行 git diff 命令都为空
(2)编辑文件增加代码,现在工作区
内容发生变化,暂存区
和版本库
内容不变。
(3)执行git add 操作后,修改同步到暂存区
,现在工作区
和暂存区
数据一致。
(4)执行git commit 操作后,修改已经同步到版本库
,三区数据再次保持一致。
git版本管理
git reset –soft commit_xxid
暂存区->工作区 将commit_xxid提交从暂存区回滚到工作区
git reset –mixed commit_xxid 版本库->暂存区
将commit_xxid提交从版本库回滚到暂存区
git reset –hard commit_xxid
版本库->暂存区->工作区 三个区都清除commit_xxid提交
2.Git分支管理
团队协作开发中,大部分都会用到版本控制软件,比如Git、Svn等。本文将通过一个实例,详细讲解在真实的工作环境中,一个团队应该如何利用Git+Github进行协作开发,即详解Git工作流程。并就其中比较棘手的问题作出解答,比如如何解决冲突比较合适,如何建立各种类型的分支等。
(1)master分支(现改叫main分支)
- 所有提供给用户使用的正式版本,都在这个主分支上发布
- 开发者在此分支 不可进行
push
操作
(2)develop分支,即开发分支 dev
分支
- 日常开发所使用的分支,开发者完成的阶段性功能模块将首先被合并到此分支
- 此分支亦是团队内部测试、阶段性工作验证所使用的分支
- 开发者在此分支 不可进行
push
操作,只能通过 Pull Request 的方式将个人分支合并到此分支 - 开发过程中,要经常与此分支保持同步
(3)feature分支,即功能分支
- 用于某个功能模块的开发,例如:张三创建了一个
feature/package-manager
分支负责开发包管理器模块 - 当该功能模块开发任务完成后,通过 Pull Request 的形式进行请求合并,管理员 Code Review 通过后,将该分支合并到
dev
分支;此后,该分支将被删除 - 一旦完成开发,它们就会被合并进
dev
分支(仅能通过 Pull Request 的方式),然后被删除 - 此类分支由开发者个人管理和使用, 可以进行
push
操作 - 开发过程中,此类分支要经常与
dev
分支保持同步
(4)hotfix/xxx - 补丁分支
- 用于紧急修复 Bug 的分支,可以由
master
或dev
分支创建 - 同
feature/xxx
分支一样,一旦修复工作完成,它们就会被合并进master
或dev
分支 (仅能通过 Pull Request 的方式),然后就被删除
(5)release分支,即发布分支
- 该分支用作发版前的测试,可进行简单的bug修复。如果bug修复比较复杂,可merge回develop分支后由其他分支进行bug修复。
- 此分支测试完成后,需要同时merge到master和develop分支上。
1.工作流程
# 开发前克隆 dev 分支到本地
git clone -b dev https://github.com/liangpengyv/vue-mvvm.git
第一步:新建分支
首先,每次开发新功能,都应该新建一个单独的分支
# 获取 dev 分支最新代码
git checkout dev
git pull
# 新建一个特性分支
git branch feature/xxx
# 切换到该特性分支,进行开发
git checkout feature/xxx
第二部:提交分支
分支修改后,就可以提交了
# 提交代码
git add .
git commit
# 开发过程中,将本地仓库开发中的特性分支 push 到远程仓库(可选的)
git push -u origin feature/xxx
git push
的 -u
参数,表示将远程仓库 origin/feature/xxx
与 本地仓库 feature/xxx
建立关联,下一次执行 push
命令,可省略后面的远程仓库名和分支名,直接输入 git push
即可
第三步:与 dev 主干同步
分支的开发过程中,要经常与 dev
主干保持同步
# 获取 dev 分支最新代码
git checkout dev
git pull
# 切换回当前开发的特性分支
git checkout feature/xxx
# 合并 dev 分支到当前分支
git merge dev
第四步:发出 Pull Request
完成当前特性分支的所有开发任务,进行最后一次 与 dev 主干同步 工作,并提交到远程仓库以后,就可以发出 Pull Request 到 dev 分支,然后请求管理员进行 Code Review ,确认可以合并到 dev
分支
# 最后进行一次步骤三的同步工作
# 提交到远程仓库
git checkout feature/xxx
git push origin feature/xxx
# 在 GitHub 管理界面创建 Pull Request,等待管理员进行 Code Review
第五步:清理无用的分支
某个特性分支开发任务全部完成后,应删除它
# 首先,切换回 dev 分支
git checkout dev
# 先删除远程特性分支
git push origin -d feature/xxx
# 再删除本地特性分支
git branch -d feature/xxx
标签:Git,network,xxx,feature,dev,git,协作,分支
From: https://www.cnblogs.com/DQ-MINE/p/17441271.html