首页 > 其他分享 >git团队协作_network

git团队协作_network

时间:2023-05-29 18:11:35浏览次数:52  
标签:Git network xxx feature dev git 协作 分支

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基本操作

img

img

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分支管理

image-20230527205230928

团队协作开发中,大部分都会用到版本控制软件,比如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 的分支,可以由 masterdev 分支创建
  • feature/xxx 分支一样,一旦修复工作完成,它们就会被合并进 masterdev 分支 (仅能通过 Pull Request 的方式),然后就被删除

(5)release分支,即发布分支

  • 该分支用作发版前的测试,可进行简单的bug修复。如果bug修复比较复杂,可merge回develop分支后由其他分支进行bug修复。
  • 此分支测试完成后,需要同时merge到master和develop分支上。
1.工作流程

image.png

# 开发前克隆 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

相关文章

  • linphone-NetworkManger.java文件分析
    功能InterceptnetworkstatechangesandupdatelinphonecorethroughLinphoneManger翻译拦截网络状态的变化,并通过LinphoneManger更新linphone核心内容。NetworkManager.java/**......
  • 记录一次jenkins远程发布github中的net core 项目
    安装jenkinshttps://www.cnblogs.com/YorkQi/p/13658531.html进入jenkins容器dockerexec-it 容器编号bash设置github的sshkey  因为jinkens拉取不能直接用账户密码apt-getupdateapt-getinstallvimssh-keygen-trsa-C"邮箱"PS: /root/.ssh/文件夹下就是你的......
  • docker删除网络报错:Error response from daemon: error while removing network
    在安装harbor发现docker的network已经存在了然后直径ls去查看发现存在如下,然后去rm删除的时候发现删不掉[root@st-test-hemu-harbor-2harbor]<2023052911:37:11>#dockernetworklsNETWORKIDNAMEDRIVERSCOPE35b4409d8f79bridge......
  • Ubuntu下 git 报ssh key错误
    先贴错误:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WARNING:POSSIBLEDNSSPOOFINGDETECTED!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TheECDSAhostkeyforsh.gitlab.XXX.comhaschanged,andthekeyforthecorrespon......
  • 修改GIT历史记录
    准备工作GIT:https://git-scm.com/download/win[可选]Idea:https://www.jetbrains.com/zh-cn/idea/开始修改命令行模式打开命令行,将命令行的路径指向需要修改的项目。输入如下命令:gitrebase-r-i<commitid>^#commitid为需要开始修改的提交id在自动打开的编辑器(VI)......
  • git clean cheat sheet
    tags:[git,published]TL;DRgit默认只会非递归地删除当前目录下不被ignore匹配、且不在untracked目录中的untracked文件是否被ignore文件匹配的使用-x删除ignore文件[1]所在目录是否untracked如果是,需要使用-d删除default行为默认会删除当前目录下的......
  • git 报错;bad config in file .gitconfig
    报错如下解决办法删除.gitconfig文件,然后重启gitbash&vscode即可正常显示分支了。记得重新设置git的账号邮箱。......
  • 《HelloGitHub》第 86 期
    兴趣是最好的老师,HelloGitHub让你对编程感兴趣!简介HelloGitHub分享GitHub上有趣、入门级的开源项目。https://github.com/521xueweihan/HelloGitHub这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言Python、Java、Go、C/C++、Swift.........
  • 源代码管理工具介绍----Github
        源代码管理工具是软件开发中非常重要的工具,它们用于追踪、管理和协调团队成员之间的代码更改。源代码管理工具使开发团队能够跟踪代码的版本历史。这意味着你可以回顾代码的先前状态、比较不同版本之间的差异,并且能够轻松地恢复到先前的工作状态。这对于修复错误、撤销......
  • Gitlab简单使用与配置
    添加组,创建用户,创建项目 创建组:    ......