GitHub其他

280 阅读6分钟

个人邀请协作者

如果想要让其他人加入当前项目,需要邀请他人,需要进入 Settings → Manage access ( 管理访问权限 ) → Invite a collaborator ( 邀请协作者 )

在弹出的对话框内输入对方的 github 账号添加,对方邮箱会收到邮件,邮件内接受邀请

公司邀请协作者

创建项目和版本

公司协作通过创建组织

可选择免费版本,然后填写组织账户名称,联系邮箱,选择此组织属于:个人账户 → Next,下方通过用户名、全名或电子邮箱搜索添加协作者,或者之后再邀请

接下来就可以在组织内创建仓库、添加协作者了

通常公司会基于 tag 来做版本管理来代替一大长串的版本号

  • git tag -a v1 -m '第一版' — 为当前版本打上版本标签 v1,并添加版本描述
  • git push origin --tags — 把项目推送到 github,刷新就会看到分支旁边的 Tags 有了 tag

同时 release 内也多了以 tag 为版本号的发布版本,可以通过这里下载版本

邀请成员

  • git branch — 确认项目分支

  • git checkout -b dev — 创建并切换到 dev 分支

  • git push origin dev — 把本地的 dev 分支推送到 github

然后在 github 组织仓库,右下角邀请成员到当前组织,发送邮件,确认,添加为组织成员

参与开发

仓库 和 项目 的权限管理

协作者加入项目之后,拿到项目地址

  • git clone 项目地址
  • git checkout dev — 切换到dev分支
  • git checkout -b ddz — 创建并切换到 ddz 分支,这时 ddz 分支的版本就是 dev 分支的代码了

功能开发完成之后,执行命令推送代码到github

  • git add .
  • git commit -m '开发完成'
  • git push origin ddz

项目分支按钮旁边的 New pull request 创建新的拉取请求

选择分支与合并到的分支,选择后下方会出现填写标题,和版本描述,点击创建,消息就会发送给组长进行代码的review

代码review

代码review由组长来做,点击上方 Pull requests 查看拉取请求

下方点击命令行到本地进行代码查看,或者线上查看

检查完代码没有问题后,点击 Merge pull request 合并拉取请求,会需要再次确认

合并代码后 pull request 请求会被关闭,可以点击下方 √ 1 Closed 来查看之前的拉取请求

打开以后下方会有删除分支,看需要自行选择,到这里 review 就做完了

release 测试上线

这一步需要测试团队或者项目头儿来做,需要执行命令

  • git branch — 查看版本是否在 dev
  • git checkout -b release — 创建并切换到 release 分支,获得 dev 版本代码
  • git push origin release — 把 release 提交到版本库

接下来由测试人员获得 github 的 release 版本进行测试,提交bug,没有问题了重复上方 review 步骤,把 release 发送提交请求到 master 版本,合并代码,删除 release 分支,然后到本地版本库取回合并后的版本

  • git pull origin master — 获取到最新版本master
  • git tag -a v2 -m '第二版' — 给最新版本添加 tag
  • git push origin --tags — 把当前 tag 推送到 github

到这里多人协同开发就完成了,这个流程不一定和自己公司流程完全一致

给开源项目贡献代码

如果发现了别人代码的bug,觉得自己可以解决,可以通过 fork 来获取代码修改提交

点击 fork 后会弹出选择把这个项目 fork 到哪儿,点击选择后刷新后查看,这样别人的源代码,就被拷贝到自己的远程仓库下了

在自己的仓库进行修改代码了,获取到自己仓库当前项目的地址

  • git clone 项目地址 — 在本地编辑
  • git add .
  • git commit -m '修改了一个bug'
  • git push origin master — 推送到github

这样就完成了对别人代码的bug修复,或者是二次开发

给源代码作者提交修复 bug 的申请 → New pull request

配置文件

  • 项目配置文件:项目/.git/config

    • git config --local user.name 'Max'

    • git config --local user.email 'xxxxxxxxx@qq.com'

    [core]
    	repositoryformatversion = 0
    	filemode = false
    	bare = false
    	logallrefupdates = true
    	symlinks = false
    	ignorecase = true
    [branch "dev"]
    	remote = origin
    	merge = refs/heads/dev
    [remote "mgd"]
    	url = https://github.com/Maxuan11/mgd.git
    	fetch = +refs/heads/*:refs/remotes/mgd/*
    
  • 全局配置文件:C:\Users\用户名\ .gitconfig

    • git config --global user.name 'Max'

    • git config --local user.email 'xxxxxxxxx@qq.com'

    [user]
    	email = xxxxxxxxx@qq.com
    	name = Max
    
  • 系统配置文件:/etc/.gitconfig

    • git config --system user.name 'Max'

    • git config --system user.email 'xxxxxxxxx@qq.com'

    注意:需要有root权限,且不常用

GitHub免密登陆

  • GitHub自动管理凭证

  • URL中体现

    原来的地址:https://github.com/Maxuan11/mgd.git
    添加账密地址:https://用户名:密码@github.com/Maxuan11/mgd.git
    
    git remote add origin https://用户名:密码@github.com/Maxuan11/mgd.git
    git push origin master
    
  • SSH实现 — 公司工作用这个比较多

    弹出右上角有 Use SSH 切换到 SSH,复制下方链接

这个链接是不能直接使用的,需要生成公钥和私钥,在 Git Bash 中输入,然后一路回车

  • ssh-keygen

Generating public/private rsa key pair. — 生成公共/私有rsa密钥对 Enter file in which to save the key (C:\Users\abc27/.ssh/id_rsa): — 输入要在其中保存密钥的文件 Created directory 'C:\Users\abc27/.ssh'. — 创建目录 Enter passphrase (empty for no passphrase): — 输入密码 ( 无密码时为空 ) Enter same passphrase again: — 再次输入相同密码 Your identification has been saved in C:\Users\abc27/.ssh/id_rsa. — 您的标识已保存在目录中 Your public key has been saved in C:\Users\abc27/.ssh/id_rsa.pub. — 您的公钥已保存在目录中 The key fingerprint is: — 关键指纹为: SHA256:dYSP7YEBGxxxxxxxxEaEhj7p6/Zk35s8zxxxxxxR6Y xxx@DESKTOP-xxxxUNB The key's randomart image is: +---[RSA 2048]----+ | +B+=+. | | .=++. oo| | . =B.o=o| | . .o.* E.*| | . S . o =o| | . . .| | .. .| | .. . +.o | | .. .+.oo | +----[SHA256]-----+

接下来打开公钥目录的文件为记事本,复制公钥,打开github的设置页面,

侧栏 SSH and GPG keys,点击右上角 New SSH key,

把公钥粘贴在这里并填写标题,点击 Add SSH key 添加公钥,输入密码验证完成添加

完成后 会获得 SSH 秘钥

在本地中配置ssh地址:

以后使用 git push origin master 推送代码的时候,git就会收到请求校验本机的 ssh 公钥再接收新版本

git忽略文件

默认情况下git会管理项目目录全部文件,如果有些文件不需要版本管理,可以忽略这些文件

在 git 管理的项目目录,创建 .gitignore 文件,记事本打开,在里面添加要忽略的 文件名、文件夹名 或者 规则

  • node_modules/ — 过滤文件夹
  • .env.local — 过滤文件
  • !/fw/bin/ — 不过滤这个目录
  • *.suo — 过滤所有 .suo 文件
  • !src/ — 不过滤这个文件夹
  • !a.suo — 不过滤这个文件
  • !src/do.c — 不过滤这个文件
  • *.py[a,b,c] — 过滤 *.pya / *.pyb *.pyc
  • .gitignore — 可以添加忽略文件本身

配置语法: 以斜杠/开头表示目录 以星号*通配多个字符 以问号?通配单个字符 以方括号[]包含单个字符的匹配列表 以叹号!表示不忽略(跟踪)匹配到的文件或目录

.gitignore 配置文件是从上到下进行规则匹配的,如果前面的规则匹配的范围更大,后面的规则将不会生效

可以通过 # xxxxxxxx 来添加描述

任务管理相关

  • issues — 提交Bug,文档以及任务管理,提交给程序员检查修改
  • wiki — 项目描述,项目作用 / 由哪些部分组成 / 如何去运行 / 项目相关的知识点 ... 拿到一个github项目先看wiki描述