Github Desktop不完全应用指南

提升团队项目工作效率(和偷偷观察你的队友的做了些什么)的必备工具。

关于github Desktop

Github Desktop是git官方提供的版本控制软件,实质上就是将git和github的操作UI化,使得我们可以使用按键来代替在cmd或者bash里面输入如add、commit等指令,更好地提升git工作的效率。

Github Desktop的使用指南

安装和登陆

首先到github Desktop的官网上面下载对应版本(Mac/Win)的安装包,这个教程的环境是win10。

安装完成后可以在左上角的【File】->【Options】->【Accounts】登陆你的github账号。这个界面也可以同时进行一些简单的配置,比如选择editor、修改背景色之类的操作。登陆完成后会显示你的头像和账号,如下图所示:

VXd2o4.jpg

创建一个新的本地仓库 or 添加一个已有的仓库

如图所示,点击红色框的【New repository】,输入一些简单的信息就可以创建一个新的仓库。

VXdWFJ.jpg

VXdfY9.jpg

点击Create后就会在刚刚选择的路径下生成一个新的仓库,此时的仓库只是本地的仓库,还没有跟你的github上的仓库对接

VXdgwF.jpg

github Desktop也会自动跳转到新建的仓库上去

VXdhWR.png

而如图所示,点击蓝色框的【Add local repository】,输入路径就可以添加当前电脑已有的仓库。
VXdWFJ.jpg

VXd5S1.png

相似的,如果选中没有被框起来的【clone repository】,就是把你云端的一个仓库拉到电脑的本地路径里面。同理,你也可以输入一个仓库的URL,然后把这个仓库clone到本地的某个路径。但是如果单纯为了clone的话,感觉还是bash里面直接clone xxxxxxxxx比较快
VXdWFJ.jpg

VXdbwD.jpg

更新仓库并推到github上

当我们更新了仓库之后,我们就可以往这个仓库加入文件。为了演示,我新建了一个txt文件放入刚刚新建的仓库里面,此时desktop会显示对应的更改,如下图显示:

VXdoy6.jpg

commit之后,本地的git仓库就等于更新完成了,此时我们可以推到云端的github上去

VXdIQx.jpg

如果是对已有的仓库连接,只要没有冲突或其他错误,一般就直接推送成功了。如果是新建的仓库,则第一次推送时会弹出创建github仓库的窗口,按publish确认,就会给你新建一个github仓库然后将更新发送上去。

VXdTOK.jpg

VXdjfA.jpg

然后我们就可以在desktop看到所有的更新了

VXdXYd.jpg

这样子,我们就实现了一次简单的仓库更新并推送的操作啦

Desktop在团队中的应用

只要有过项目经历,我们都知道使用github进行团队开发的滋味。特别是当你兴高采烈地写了一整天,然后忘记先把云端的拉下来,然后你就又可以兴高采烈地解决一整天的冲突了。

但是!只要你使用github desktop + 养成一个良好的习惯,冲突问题就可以很大程度上被避免啦。这个良好的习惯就是:每次更新团队项目时,先打开你的Desktop,然后按下那个美妙的更新按钮【Fetch origin】。一旦你的teammates有更新,它就会显示一个下拉按钮 + 数字,数字表示的就是你的队友commit过的数量。此时fetch一下,本地的版本就会同步到最新的。(虽然用bash其实原则上也应该这样做)

那还有一个最最重要的功能,就是我们刚刚试验过的历史查看。这大概就是Desktop的灵魂所在了。通过这个功能,你就可以(悄悄地、直观地)看到你的队友都做了什么,改了哪些文件的哪一行,更新的频率都能看的到。然后就可以日常发出这样的感慨:

  • ??,这兄弟今天commit了15次,最后改了个逗号,绝了
  • 我靠,XX上一次更新已经是7天前了
  • s主席为什么这么强啊,一个人单挑一个模块
  • 他居然半夜3点半起来把我们数据库给删了?

VXdOFH.jpg

玩笑归玩笑,这样子直观地看到队友修改的代码和文件,无疑是git bash无法提供的,这也极大程度上的提高了我们团队的工作效率,能够有针对性地接手队友的代码,而不需要疯狂询问他/她改了哪里。这也是我觉得desktop最有优势的一个地方。

对了,改完代码之后,记得push上去,不然死亡冲突常伴你身。

一些玄学问题

  1. 如果太久没用desktop或者隔了很久,好像账号的登录状态会出问题,这个时候不会有显示的提示,但是fetch和push操作会失效(显示超时还是什么我忘了),这个时候在option那里重新登陆一下就好了
  2. 如果有使用chrome的adblock这个插件的话,有时候会出现登录不了的情况(好像也是显示超时),google的说法是adblock会把登陆页也屏蔽掉。我自己个人有效的解决方法是右键用管理员权限打开desktop就可以正常登陆了。
  3. 校园网好像对github desktop有一些怨念,我经常碰到用校园网然后在desktop fetch的时候会超时(timeout)的情况,这个时候切别的wifi或者手机热点通常会好
  4. 同理,当你开着科学上网器而且处于pac模式的时候,也会有类似的情况,一般切成全局模式或者关掉好像就解决了,至少我是这样的。

总而言之,一旦出了问题,常规操作就是【关掉】-【管理员权限打开desktop】-【重新log out再log in】-【fetch】。

如果还是不行,那就重启吧,重启解决一切问题。

while(bug){
    if(好像知道是哪里出了错)
        tryToDebug();
    else        
        reboot;
}
文章目录
  1. 1. 关于github Desktop
  2. 2. Github Desktop的使用指南
    1. 2.1. 安装和登陆
    2. 2.2. 创建一个新的本地仓库 or 添加一个已有的仓库
    3. 2.3. 更新仓库并推到github上
    4. 2.4. Desktop在团队中的应用
  3. 3. 一些玄学问题