许多时候,我们在Github上Fork代码,不是为了提交pull request,只是想做个备份。例如V2ray客户端trojan客户端中的客户端代码,因为众所周知的原因,不知哪天就被和谐了,因此值得Fork做个备份。

Fork代码简单,但如何保持在最新版代码是一个麻烦事。许多人Fork后再也没管,因此代码一直停留在Fork时的版本。

本文介绍使用pull app保持Fork代码在最新状态。

手动更新Fork代码

使用pull app之前,先介绍一下手动同步Fork代码的操作步骤。Github给出的官方同步操作说明如下:

# 首先你需要设置原代码库为upstream(upstream可以改成其他名字),只需设置一次即可
git remote add upstream https:/xxxx
# 获取原代码库最新代码
git fetch upstream
# 切换到合并分支(master),一般来说这一步可以省略
git checkout master
# 合并上游代码
git merget upstream/master
# 更新到github
git push

一般情况下,你本地不会有更新,直接pull/push就完事:

# 直接执行fast-forward
git pull upstream
git push

可以看到,同步代码很简单。但要保持代码同步,则需要对每个Fork的库经常做上述操作。这是非常繁琐的,完全可以使用自动化避免重复性操作。

使用pull app保持Fork代码在最新状态

pull app 是由 wei 开发的第三方Github app,它的作用非常简单:保持你的Fork在最新状态。

pull app的安装和使用也很简单:

1. 打开app页面 https://github.com/apps/pull

2. 点击右上角绿色的 “install” 按钮

3. 在选项页面,使用默认的“All repositories”即可,然后点击绿色的“install”按钮:

设置pull app
设置pull app

简单三步,pull app就安装好了。接下来pull app会每天定时帮你更新代码库,使你fork的代码始终是最新版的。

一个小问题

如果你Fork并watch过某个代码库,每次pull app更新代码后都会发邮件通知你。对于更新比较频繁的代码库,提醒会比较烦人:

pull app通知邮件
pull app通知邮件

如果你不想频繁被打扰,进入Github,unwatch这个代码库就好了。

需要说明的是,Fork库默认为非watch状态,因此pull app会默默帮我们更新代码,但没有邮件打扰,真的非常棒。

参考

  1. pull app
  2. 构建自己的iOS网络代理客户端