首页 > 其他分享 >多人协作:git flow开发模式

多人协作:git flow开发模式

时间:2024-03-13 10:14:07浏览次数:21  
标签:git -- py flow 协作 release config gitignore

多人协作

如何实现多人协作,共同开发一个项目,每个人负责一些功能?

为每个人创建一个dev分支,或者以每个人负责的功能为命名创建dev分支(git flow工作流)

在GitHub中添加合作者

1.个人添加

在仓库的settings选项中,选择collaborators选项

2.组织添加

创建一个组织

设置组织的一系列信息后即可创建完毕,无需邀请其他成员,直接继续即可进入组织界面

新建一个组织项目dbhot,然后推送第一个版本

版本名称应该是v1.0之类而不是具体的描述,如何添加对应的版本号?

使用git tag添加Tag

$ git tag -a v1 -m "第一版"

$ git log
commit b933935d4bf99eb8a665fb36b1a88e924ae756a9 (HEAD -> master, tag: v1, origin/master)
Author: Gin49SZ <1003690614@qq.com>
Date:   Mon Mar 11 18:12:56 2024 +0800

    东北热基本功能

将tags推到远程仓库

$ git push origin --tags 

通过点击tag即可查看对应的版本

可以通过点击tags可以查看标签和release版本

多人协作实例

创建dev并切换到dev

git checkout -b dev
  • 邀请成员进组织 invite member

    • member:成员
    • owner:管理员
  • 管理不同成员对项目的权限

    • 点击仓库的settings
    • 在Collaborators and teams中邀请对应的成员
    • 点击edit修改成员的权限
  • 成员创建自己的分支ddz并进行开发

    git checkout -b ddz
    
    touch 斗地主.py
    
    vim 斗地主.py
    
    git add .
    
    git commit -m "斗地主功能开发完毕"
    
    git push origin ddz
    

代码review

  • 应不应该做:应该

  • 由谁来做:team leader

  • 如何做:用GitHub上的pull request来实现,需要一些配置

    • 在项目的settings中找到Branches菜单项

    • 点击add branches protection rule添加规则,勾选pull request前面的确认

    • 点击create创建规则,之后想要和dev合并的代码必须经过review才可以

  • 成员点击compare & pull request创建pull request

  • 之后代码会被发给leader

  • 小组Owner进入Pull request界面即可查看到review

  • 点击Add your review即可添加review

  • Owner通过提交review或者approved即可通过review,之后合并会变成允许状态,点击合并后即可将ddz分支合并到dev

  • 合并成功后,会提示可以删除对应的分支,点击delete branch即可删除,之后Code界面就不会有ddz分支

测试和上线

dev上的内容与master合并需要提出测试,并通过测试

进入release分支的项目不会再添加新功能,主要用于测试BUG

将release版本提交到master版本再做一次review(操作见上),通过即可正式上线

  • 添加测试分支

    git branch -b release
    
  • 在GitHub中提交pull request,创建review通过,合并release到master中

  • 在GitHub中删除release分支

  • 在本地将release分支合并到dev中

    git checkout dev
    
    git merge release
    
  • 删除release分支

    git branch -d release
    
  • 将GitHub的master分支pull到本地

    git checkout master
    
    git pull origin master
    
  • 为上线的内容添加tag

    git tag -a v2 -m "第二版 增加斗地主功能"
    
    git push origin --tags
    
  • 在GitHub查看tag,有两个标签

    v2
    v1
    

给开源项目贡献代码

对现有开源项目提供的建议以及代码被采纳,是一件非常值得技术人员自豪的事情,如果您发现某个项目出现一些bug或者有一些方面功能改进的建议,如何实现向开源项目贡献代码呢

1.fork源代码

将别人的源代码拷贝到自己的远程仓库

2.在自己的仓库进行修改代码,并提交到自己的仓库

3.给源代码作者提交修复bug的申请(pull request)

点击new pull request生成一个pull request, create之后就可以把意见或者代码提交给原作者

其他小知识点

配置文件

  • 项目配置文件:项目/.git/config,git config --local 只在当前项目生效

    git config --local user,name 'xxx'
    git config --local user.emial 'yyy'
    
  • 全局配置文件:~/.gitconfig\

    git config --global user,name 'xxx'
    git config --global user.emial 'yyy'
    
  • 系统配置文件:/etc/.gitconfig

    git config --system user,name 'xxx'
    git config --system user.emial 'yyy'
    
    注意:需要有root权限
    

应用场景:

git config --local user,name 'xxx'
git config --local user.emial 'yyy'

git config --local merge.tool bc4
git config --local mergetool.bc4.cmd "\"C:\\Program Files\\Beyond Compare 4\\BComp.exe\" \"
git config --local mergetool.keepBackup false

git remote add origin 地址 默认添加在本地配置文件中(--local)

免密登录

  • URL中体现

    原来的地址:https://github.com/xxx/yyy.git
    修改的地址:https://用户名:密码@github.com/xxx/yyy.git
    
  • SSH实现

    1.生成公钥和私钥(默认放在 ~/.ssh目录下,id_rsa.pub公钥、id_rsa私钥)
    	ssh-keygen
    2.拷贝公钥的内容,并设置到github中
    	cat ~/.ssh/id_rsa.pub -> 复制 -> GitHub -> settings -> SSH and GPG keys ->new SSH -> add SSH
    3.在git本地中配置ssh地址
    	git remote add origin SSH协议地址(Code -> Local -> SSH)
    4.以后使用
    	git push origin master 无需使用密码
    
  • git自动管理凭证,基于操作系统做的凭证

git忽略文件

假设目前有a.py, b.py, c.py三个文件,当git管理时候会全部一并管理,如何实现屏蔽某个文件?

vim .gitignore

.gitignore中输入要忽略的文件a.py,即可在git中屏蔽该文件

.gitignore中输入*+忽略文件的扩展名*.py,即可在git中屏蔽所有的.py格式文件

.gitignore中输入.gitignore,这个文件也不会在git中显示

.gitignore中输入files/,名叫files的文件夹下的所有文件都会被忽略

.gitignore中输入!a.py,除了a.py之外的所有文件都会被忽略

.gitignore中输入!files/,除了名叫files的文件夹下的所有文件,其他文件都会被忽略

在GitHub中搜索gitignore可以查看排除某种语言的写好的.gitignore

任务管理

  • issues,文档以及任务管理。
  • wiki,项目文档。

注:本合集全部笔记均来自于bilibili武沛齐老师的教学,更多内容关注https://space.bilibili.com/336469068?spm_id_from=333.337.0.0

标签:git,--,py,flow,协作,release,config,gitignore
From: https://www.cnblogs.com/gin49sz/p/18069988

相关文章

  • GitHub推荐使用指南
    GitHub是什么?做代码仓库,代码托管的仓库,类似功能的还有CSDN、GitLab等使用步骤创建账号创建仓库第一步第二步将本地代码推送到远程仓库gitbranch-Mmain表示将主线命名为main实际使用提交直接执行以下即可推送master分支gitremoteaddoriginhttps://github.com/G......
  • Git推荐使用指南
    Git是什么?分布式版本控制的软件软件:安装到电脑上的工具版本控制:文件拷贝:论文->版本通过文件来控制,多个文件,不同的标注来确定各个阶段的版本本地版本控制:只有一个文件,但是通过本地控制软件可以追溯以前的所有版本(类似游戏存档),相比文件拷贝,视觉上不会存在多个文件过......
  • 技术笔记(8)git的部分进阶功能
    技术笔记(8)git的部分进阶功能‍学习笔记:‍与分支有关的git操作branch、checkout、merge查看分支:查看当前分支信息:gitbranch查看远程分支信息:gitbranch-r查看所有分支信息,包括本地和远程:gitbranch-a分支与分支:切换到某分支:gitcheckout从当前节点新建......
  • git 版本回退
    git版本回退1.方法12.方法22.1补充2.2revert多次版本3.两个区别1.方法1原有的代码分支与代码加一行代码做一次改变回退到指定版本gitreset--hard2a404ae22.方法2新加一行代码gitrevrt测试,它的commit-id:35c416da,然后我执行gitrevert35c416da......
  • Git 系列:简介安装以及配置管理
    目录简介安装简介Centos安装配置管理githelp概要选项示例git-docgitconfig概要选项变量示例初始化配置简介安装简介https://git-scm.com/Git是一个开源的分布式版本控制系统,用于有效、高速地处理从小到大的项目版本管理。它最初由Linux之父LinusTorvalds设计开发,旨在帮助管......
  • git-revert的使用
    使用场景:release分支被其他分支错误的合并完代码之后,又有新分支将代码合并到release,需要去回滚某分支错误的合并请求1.基于release分支新建一个分支:release-revert命令:gitcheckoutrelease #切换到release分支gitcheckout-brelease-revert #创建并切换......
  • 安装部署gitea
    gitea介绍官网https://about.gitea.cn/最近发现gitea的官网发生了变化,也不知道什么时候改了,之前的域名是gitea.io的,但是现在会跳转到about.gitea.cn域名上可能是商业化了吧,但这也并不意味着Gitea就变成了商业软件。Gitea目前仍然是一个完全免费且开源的项目,任何人都可以......
  • github官网访问不到的解决方法
    解决方案: 1)在键盘同时按住win+R输出cmd 2)在命令行窗口输入ping github.com 获取GitHub的官网IP    3)配置hosts文件,绕过DNS解析过程  打开电脑C:\Windows\System32\drivers\etc下的hosts文件编辑(需要管理员权限,右键,管理员权限打开),新增如下一行配置:20.205.243......
  • git ssh配置
    一个人自己用在GitHub/GitLab添加ssh公钥将私钥放在本地~/.ssh下面,名字无所谓。push你的仓库,gitpushxxxx如果正好一切都很巧合的话,就能push成功。,他就会自动找一个私钥使用。这适用于只有一个github用户,自己对付用一下的情况。github依靠不同的私钥来区分登录的用户,所有......
  • 如何在Anolis 8 安装 极狐GitLab Runner
    GitLab是一个全球知名的一体化DevOps平台,很多人都通过私有化部署GitLab来进行源代码托管。极狐GitLab是GitLab在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。基于Anolis龙蜥8和极狐GitLab官方仓库脚本安装/配置极狐GitLabRunner说明我们先......