超详细!Github团队协作教程(Gitkraken版)
超详细!Github团队协作教程(Gitkraken版)
一、前期工作
1. 在 Github 上创建 organization
step1. 登录Github网站,点击右上角头像,选择 “Settings” :

step2. 选择 “Organizations” ,点击右上角 “New organization”

2. 邀请队友加入 organization 并创建 team
step1. 进入组织,点击 “People” -> “invite member” 邀请队友加入:

成功加入后,在 Github 个人主页的头像下方能看到自己加入的组织:

step2. 进入组织,点击 “Teams” -> “new team” 创建团队,然后将已加入组织的队友添加进去:

3. 建立团队项目仓库,在设置中将 team 的权限设置为 read
step1. 进入组织,点击 “Repositories” -> “New” 新建团队项目仓库:

step2. 点击进入刚创建的仓库,选择 “Settings” -> “Collaborators & teams”,选择刚建的 team,将权限设置为 read:

4. 创建开发分支,让队友 fork 到个人仓库
step1. 在输入框 “Find or create a branch...” 处键入dev,创建开发分支。

step2. fork 到个人仓库

成功后在个人仓库中能看到如下 fork 信息:

二、正式使用流程(Gitkraken)
1. clone 项目到本地
点击菜单栏 “File” -> “Clone Repo”, 选择本地路径、输入自己的远程仓库 URL (如:https://github.com/thousfeet/Test),clone 完成后点击 “Open Now” 。此时左侧的 “REMOTE” 下方的 “origin” 会显示你的远程仓库信息。
操作动图:

2. 添加 REMOTE 关联到团队远程仓库
点击 “REMOTE” 右侧 “+” 号,添加团队项目仓库。此时 “REMOTE” 下会多出团队远程仓库信息。
操作动图:

3. 切换到 dev 分支
到这步,在本地仓库(左上方 LOCAL )仍只能看到 master 分支。因此在 “origin” 下的 “dev” 处点击右键 -> “check out origin/dev”,将远程的 dev 分支同步下来。
操作动图:

完成这一步之后终于可以愉快地打开本地仓库项目开始写代码辣。
4. 提交commit到自己的远程仓库
首先明确:
我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区(stage);
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
(摘自廖雪峰 Git 教程)
当你修改本地仓库的文件时,Gitkraken 会自动检测到变更,并在右上角显示 “xx file changes on dev” 。点击 “Stage all changes”,将文件修改添加到暂存区,然后在最右下方的 “Commit message” 中写下 commit 信息,提交到自己的远程仓库。
操作动图:

5. 和团队远程保存同步
当你在本地修改了项目的同时,其他队友或许已在此期间给团队的仓库提交了新的代码。因此在完成了一系列 commit 将要 push 到远程之前,先要同步到与团队一致的版本,避免在 pull request 时产生冲突。
为此我们要做两件事:更新远程仓库的代码到本地仓库(fetch),然后将内容合并到当前分支(merge)。(在合并的时候可能会出现冲突,冲突的解决方式将会在后续说明。)
在Gitkraken的操作是:在 “REMOTE” 中的团队远程仓库上单击右键 -> Fetch xxx,然后在团队远程仓库的 dev 分支上单击右键 -> Merge xxx/dev to dev 。
此时可以看到中间的树状分支图上出现了 merge 信息。
操作动图:

6. push 到自己的远程仓库 & 请求 pull request 到团队远程
点击最上方的 push 按钮将之前的一系列 commit 信息推到自己的远程仓库,然后在团队远程仓库的 dev 上右键 -> “Start a pull request to xxx/dev from origin/dev”,输入 pull request 信息(如果只有一条 commit,则会自动填充上 commit 信息),然后点击提交。此时可在右上角的弹窗单击 “View on github”,在浏览器中查看此次 pull request 。
操作动图:

使用 Gitkraken 进行其他 Git 操作:教程入口
包括内容:
- 查看某次 commit 的文件改动
- 修改 commit 信息
- 合并多次 commit 信息
- 回到旧版本 commit 记录并 push 到远程仓库
- 解决 merge 到本地时的冲突
文末致敬西瓜学长的 Github 团队协作命令行教程 ~
(补充了西瓜学长没有提到的 Organization 建立方式等)
超详细!Github团队协作教程(Gitkraken版)的更多相关文章
- github团队协作教程
跟着笔者魔鬼般的步伐,我们一起来瞅瞅一个团队协作的任务如何进行版本管理吧~ 要跟上哦~ =============================================== 首先我们先来看下 ...
- 超详细!Vue-Router手把手教程
目录 1,router-view 2,router-link 3,重定向redirect 4,路由别名 5,路由传参props 5.1,布尔模式 5.2,对象模式 5.3,函数模式 6,路由守卫 6. ...
- GitHub团队协作流程
说来惭愧,这么长时间,第一次参与修改开源项目,所以整理了一份GitHub团队协作流程,作为备忘,文章大部分内容参考https://www.cnblogs.com/schaepher/p/4933873 ...
- 超强、超详细Redis数据库入门教程
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用red ...
- 超强、超详细Redis数据库入门教程(转载)
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么 2.redis的作者何许人也 3.谁在使 ...
- 【原创】Github团队协作之Pull请求
首先声明:Github上关于代码团队协作方式有很多种,这里只讲述Github上其中的一种代码团队协作方式. Pull请求(Pull request) 1 综述 协作者通过fork一个新的代 ...
- 协同开发功能——Github团队协作
最近需要写一个HoloLens开发的简明介绍,其中要测试几个demo.用到github以团队协作,像下面是简单的事件记录. 一.创建项目 1. 2.项目设置 名称 描述description Init ...
- 超详细Redis数据库入门教程
[本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.redis数据结构 – 简介8.redis ...
- 超详细的Maven使用教程
原文: http://blog.csdn.net/u010425776/article/details/52027706 主题 Maven 什么是Maven? 如今我们构建一个项目需要用到很多第三方 ...
随机推荐
- 122. 买卖股票的最佳时机 II-leetcode
题目: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能同时参与多笔交易(你必 ...
- Java并发编程笔记之FutureTask源码分析
FutureTask可用于异步获取执行结果或取消执行任务的场景.通过传入Runnable或者Callable的任务给FutureTask,直接调用其run方法或者放入线程池执行,之后可以在外部通过Fu ...
- SQL优化原则(转)
一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统 ...
- 解决使用elementUI框架el-upload上传组件时session丢失问题
在使用elementui框架上传组件的时候,出现session丢失,后端无法获取到sessionid,导致返回状态为未登陆 查看请求头缺少cookie值 上传组件代码: <el-upload c ...
- Java关键字(一)——instanceof
instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为: boolean result = obj instanceof Class 其中 obj 为一 ...
- NFS部署教程
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可 ...
- netty源码解解析(4.0)-9 ChannelPipleline的默认实现-链表管理
io.netty.channel.DefaultChannelPipeline implements ChannelPipleline DefaultChannelPiple给出了ChannelP ...
- 用法:node模块都具备的方法(exports、module、require、__filename、__dirname)
凡是玩弄nodejs的人,都明白,每一个模块都有exports.module.require.__filename.__dirname的方法 清楚了解方法的用法后,玩转node就等于清楚了日常讲话的内 ...
- 如何为你的树莓派安装一个WIN10系统?(非iot)
Windows10 ARM版,是的,这次并非IoT版,而是功能与PC一致的ARM版.需要注意的是,这个方法并非官方提供的,可用性上会有一些坑,热衷于尝试的玩家可以一试! 准备项目:树莓派3B以上型号, ...
- c# 对文件操作
/// <summary> /// 获得当前绝对路径 /// </summary> /// <param name="strPath">指定的路 ...
