Github团队协作教程(Gitkraken版)

转载非原创,侵立删

一、前期工作

1. 在 Github 上创建 organization

step1. 登录Github网站,点击右上角头像,选择 “Settings” :

image

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

image

2. 邀请队友加入 organization 并创建 team

step1. 进入组织,点击 “People” -> “invite member” 邀请队友加入:

image

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

image

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

image

3. 建立团队项目仓库,在设置中将 team 的权限设置为 read

step1. 进入组织,点击 “Repositories” -> “New” 新建团队项目仓库:

image

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

image

4. 创建开发分支,让队友 fork 到个人仓库

step1. 在输入框 “Find or create a branch...” 处键入dev,创建开发分支。

image

step2. fork 到个人仓库

image

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

image

二、正式使用流程(Gitkraken)

1. clone 项目到本地

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

操作动图:

image

2. 添加 REMOTE 关联到团队远程仓库

点击 “REMOTE” 右侧 “+” 号,添加团队项目仓库。此时 “REMOTE” 下会多出团队远程仓库信息。

操作动图:

image

3. 切换到 dev 分支

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

操作动图:

image

完成这一步之后终于可以愉快地打开本地仓库项目开始写代码辣。

4. 提交commit到自己的远程仓库

首先明确:

我们把文件往Git版本库里添加的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区(stage);
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

image

(摘自廖雪峰 Git 教程

当你修改本地仓库的文件时,Gitkraken 会自动检测到变更,并在右上角显示 “xx file changes on dev” 。点击 “Stage all changes”,将文件修改添加到暂存区,然后在最右下方的 “Commit message” 中写下 commit 信息,提交到自己的远程仓库。

操作动图:

image

5. 和团队远程保存同步

当你在本地修改了项目的同时,其他队友或许已在此期间给团队的仓库提交了新的代码。因此在完成了一系列 commit 将要 push 到远程之前,先要同步到与团队一致的版本,避免在 pull request 时产生冲突。

为此我们要做两件事:更新远程仓库的代码到本地仓库(fetch),然后将内容合并到当前分支(merge)。(在合并的时候可能会出现冲突,冲突的解决方式将会在后续说明。)

在Gitkraken的操作是:在 “REMOTE” 中的团队远程仓库上单击右键 -> Fetch xxx,然后在团队远程仓库的 dev 分支上单击右键 -> Merge xxx/dev to dev 。

此时可以看到中间的树状分支图上出现了 merge 信息。

操作动图:

image

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 。

操作动图:

image

使用 Gitkraken 进行其他 Git 操作:教程入口

包括内容:

  • 查看某次 commit 的文件改动
  • 修改 commit 信息
  • 合并多次 commit 信息
  • 回到旧版本 commit 记录并 push 到远程仓库
  • 解决 merge 到本地时的冲突

使用Gitkraken进行其他Git操作

查看某次 commit 的文件改动

使用 Gitkraken 能非常方便的看到任意一次的 commit 对项目文件的改动。

具体操作是:在树状分支图上单击某个 commit 记录,在右侧会显示出此次 commit 信息、文件的改动情况(分为红、绿、黄三种标志,分别代表删除文件、添加文件、修改文件)。

image

当单击某个改动的文件时,会展示出具体的变更情况,可选择 “Diff View” 视图查看与上一次 commit 的差别,或 “File View” 视图查看完整文件。

image

修改 commit 信息

当一不小心手抖误写和提交了一个 commit 信息之后,可以在树状分支图中选中此 commit 记录(必须是最新一 次commit ,旧的 commit 信息不允许修改),点击右侧上方的 commit 信息进行修改,然后点击下方 “Update Message” 提交修改。

操作动图:

image

合并多次 commit 信息

当从团队项目分支 Merge 到本地时, Git 会自动产生一条形如 “Merge remote-tracking branch 'upstream/dev' into dev ” 的 commit 信息,提交到团队项目上去就会有一大堆这种 merge 信息混杂在有用的 commit 记录里。这时候就可以用合并 commit 信息得以解决。

在Gitkraken中的具体操作是:在树状分支图的某个 commit 记录上右键,选择 “Reset dev to this commit” -> “Soft - keep all changes”。成功后,所有新于此条 commit 的信息都会被抹去,但文件的修改还保留着。

操作动图:

image

回到旧版本 commit 记录并 push 到远程仓库

当一不小心把某个代码改崩了且已经传到了远程仓库,想要回退到旧版本的某次 commit 记录并将此次旧记录 push 到远程时,可以做如下操作得以解决:

在树状分支图的某个 commit 记录上右键,选择 “Reset dev to this commit” -> “Hard - discard all changes”。成功后,所有新于此条 commit 的操作都会被抹去,包括对文件的修改。然后点击上方菜单栏的 push 推到远程仓库,但由于 head 指针滞后,选择 Force 强制把远程项目更为旧版本。

操作动图:

image

* 解决 merge 到本地时的冲突

当你在本地修改了代码文件时,队友可能修改了同一份代码,这时候从团队项目分支 merge 到本地时,就可能会产生冲突。此时当在团队远程分支右键点击 merge 时,Gitkraken会检测出 conflict ,这时候只要选择 “View conflict file” 就可以打开冲突文件的 diff 视图,通过勾选方框选择保留冲突部分的哪个版本,确定后就可以得到最下方的 Output 示意的最终合并后的文件。

image

(但队友反映不如直接在文件中去删冲突标识符更好用,所以打星不做推荐)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容

  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 3,485评论 0 13
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,638评论 4 54
  • 玉兰花落到离别。 愿此去繁华似锦,再相逢依旧如故。
    陈新如阅读 270评论 2 1
  • 今天我们学了口算题卡。老师奖励我了一个笑脸。我坐姿端正面向黑板,郭老师又奖励我了一个笑脸。我还得了两个100+5我...
    张雪涵阅读 165评论 0 0
  • 时间:2017年11月4日 人物:菩萨~海燕、乐凯~咖啡、孟~游牧 深秋已至,早晚的温差较大,正午阳光明媚,可到了...
    咖啡_839d阅读 569评论 2 2