fork 使用指南
Fork使用需求
- 建议预留C盘 1GB 存储空间,最少 200MB 的存储空间
- 在Gitlab实例中注册一个可用Gitlab账号
Fork安装
- Fork官方下载页面:https://git-fork.com
- 下载适合你的系统的安装包,Fork支持windows和mac
Fork初始化
运行下载好的fork安装包,会进行安装配置页面,在此页面填写你的用户名和邮箱,如下图所示:

- 等待初始化完成

- 等待初始化完成
初始化完成后,便能看到Fork主界面,如下图所示:

初始化ssh密钥并将ssh公钥注册到Gitlab账号中
如果你已经配置过ssh密钥也将ssh公钥注册到Gitlab账号上了,可以跳过此步骤
为了能使用ssh方式拉取Git仓库,需要创建一个ssh密钥对,fork提供了创建密钥对的功能. 点击主窗口左上角的
File选项,在下拉菜单中点击Configure SSH Keys...选项
进入
Configure SSH Keys页面,点击左下角的+,在点击其下拉列表的New SSH Key...选项
如果你已经配置过ssh密钥,这个页面会显示你已经创建过的的ssh密钥,你只需要将你需要用的ssh密钥对左侧的复选框勾选上即可,就不需要执行后续的创建SSH密钥的步骤
在弹出的
Generate new SSH Key窗口中,Key File Name中填入id_ed25519,Email中填入你的邮箱地址,再点击Generate即可完成密ssh密钥对的生成
ssh密钥对创建完毕后,即可在
Configure SSH Keys页面看见刚刚创建的密钥对了,软件会自动勾选此密钥对. 最后,还需要将这个ssh密钥对的公钥部分复制下来,以供后续将ssh公钥注册到gitlab上

接下来,使用你注册的账号登陆gitlab实例,将ssh公钥注册到gitlab上,具体操作如下下图所示:
- 点击网页中左侧菜单栏的个人头像,在下拉列表中点击
偏好设置 - 在
用户设置页面中,找到并点击左侧菜单栏中的SSH密钥选项,然后在SSH密钥主页面的右侧点击添加新密钥按钮
- 然后,将刚刚复制的ssh公钥粘贴到
密钥文本框中,此时标题文本框会自动填充内容,可以自行修改或者不修改,接着在到期时间文本框中点击X圆钮,将时间去除,表示这个注册的ssh公钥永不过期,最后点击添加密钥按钮,完成ssh公钥的注册。
- 点击网页中左侧菜单栏的个人头像,在下拉列表中点击
通过Gitlab PAT使Fork登陆你的Gitlab账号
在Fork中登陆你的Gitlab账号并不会影响你通过SSH密钥来拉取Gitlab仓库和推送内容到Gitlab仓库, 如果你只是要简单使用Fork来的拉取仓库内容推送本地内容,你可以跳过此部分
Gitlab版本大于15的Gitlab实例不允许申请永不过期的PAT, PAT最长过期时间为1年, 所以PAT每隔1年需要轮换一次
Fork登陆Gitlab账号需要PAT,所以需要先申请PAT. 登陆Gitlab后,点击网页中左侧菜单栏的个人头像,在下拉列表中点击
偏好设置
点击左侧菜单栏
访问令牌,再点击在个人访问令牌页面右侧添加新令牌按钮

然后在
添加个人令牌页面,填写令牌名称,选择api权限,设置到期时间,最后点击创建令牌按钮即可完成PAT的创建,请将创建好的PAT复制到一个地方暂存

PAT创建后只会在Gitlab中显示一次,后面将无法再次查看
接着需要将PAT放到Fork中使用,点击主窗口左上角的
File选项,在下拉菜单中点击Accounts选项
进入
Accounts页面,点击窗口左下角+图标,然后在弹出的Add Account窗口中点击Gitlab Server按钮
在弹出的
Log in to Gitlab窗口中,Server文本框填写的是gitlab实例的首页url,Personal Access Token则填写从Gitlab中申请到的token内容
若添加成功,则如图所示:

Fork界面简介
Fork仓库标签页
All Commits页面

- 你可以在右上角的
Appearance中切换白色主题和黑色主题, 还可以切换界面的样式
- 你可以在右上角的
Fork仓库标签页
Local Changes页面

Fork(Git)基本用法
建议不要一次性提交大量改动的文件, 除非你明确知道你在干什么. 每个commit有明确的改动描述和合适的改动范围有利于后续问题溯源
如果执行上述教程其中任何一个步骤中出现了问题, 弹出了失败窗口, 请截图或者复制窗口内的内容并立刻联系复仇时刻仓库管理员, 并停下提交流程等待仓库管理员的指示。
克隆仓库内容到本地
- 首先,你需要去仓库的首页,以Gitlab为例,在仓库首页的
代码按钮红,复制SSH url
- 然后,回到Fork主窗口,点击左上角菜单栏
File选项,在下拉列表中点击Clone选项 - 接着,在弹出的
CLone窗口中,看看Repository Url是否已经自动填上了正确的SSH url(Fork会自动读取剪贴板内容粘贴到文本框中),如果是文本框是空的则手动粘贴进去,再接着点击在Parent Folder右侧的文件夹图标,选择一个文件夹作为存放克隆仓库内容的父文件夹(默认会在你选择的文件夹下创建一个和仓库名一致的文件夹),Name部分会随着Repository Url自动填写,然后点击Clone按钮,等待仓库克隆完成即可
创建/切换分支
如果你不知道你要基于哪个commit或者分支来创建分支或切换分支, 那请默认切换到main或master分支再创建分支
切换远端分支
- 如果你想基于某个现有的远端分支提交内容,展开左侧分支列表
Remotes列表,双击你的目标分支
- 在弹出的
Track Remote Branch窗口中点击Track按钮即可切换到目标分支
创建分支
- 先确认你已经切换到合适的分支,然后点击主窗口正上方的
Branch按钮,或者右键左侧分支列表的分支,在右键下拉菜单中选择New Branch选项
- 在弹出的
Create Branch窗口中,填写Branch Name,分支名一般简要描述要解决的问题或者要完成的任务即可,然后点击Create and Checkout按钮即可创建分支
在分支中创建Commit并推送Commit到远端仓库
要创建commit,首先你需要修改本地仓库内容,然后回到Fork仓库标签页,点击左侧
Local Changes选项切换到Local Changes页面

然后,Fork会读取到本地仓库内容的改动,在
Unstaged区选择你要提交的文件,然后点击Stage按钮,将文件移至Staged区,接着,填写Commit Message和Commit Description,最后点击Commit按钮即可创建commit

回到
All Commits标签页,就能看到刚刚创建的commit了

接着,还需要将本地新分支推送到远端仓库,点击主窗口左上角的
Push按钮

在弹出的
Push窗口中,直接点点击Push按钮即可推送你的分支到远端仓库,因为默认push的是当前分支

主窗口正上方的小部件会显示推送的状态,如图所示
Updated 'xxx/xxx表示推送完毕Everything is up to date表示没有实际内容被推送,因为本地没有内容改动
在远端仓库页面创建PR/MR
- 在推送新分支到远端仓库后,可以在浏览器访问远端仓库的页面去创建PR/MR,以Gitlab为例,在仓库首页左侧的找到
合并请求选项,点击后进入合并请求页面,再点击新建合并请求按钮. 当然,Gitlab已经贴心的为我们提供了快捷创建合并请求的入口,每次推送新分支时,仓库首页都会置顶一条通知,直接点击通知上的创建合并请求即可省略选择分支的步骤进入新建合并请求页面

- 点击
新建合并请求按钮后,选择源分支和目标分支,源分支选择刚刚新创建的分支,目标分支根据实际需要而定
- 然后,再进入到新的
新建合并请求页面,填写标题和描述,再选择一下指派人和审核者,最后再点击创建 合并请求即可创建MR
- 创建MR成功后,即可在合并请求页中看到创建的MR内容

Fork(Git)高级用法
拉取和推送
Fetch
- 点击软件左上角的
Fetch即可同步远程仓库的所有内容, 也可以使用快捷键Ctrl+Shift+F来拉取, 还可以用Ctrl+alt+Shift+F来进行快速拉取(快速拉取不会弹出窗口询问要拉取的远程仓库源是哪个)
- 点击软件左上角的
Pull
- 点击软件左上角的
Pull即可, 也可以使用快捷键Ctrl+Shift+L来拉取当前远程分支的内容并合并到本地分支.
- 点击软件左上角的
- 拉取完毕后, 你需要通过以下步骤把你的工作内容提交到远程仓库
- 将改动放入暂存区(stage)
- 把你改动的文件放进仓库的目录的根目录或者指定的文件夹内
- 然后回到软件点击左边列表中的
Local Change, 你可以在左边的Unstaged列表中看到你放进去或者有改动的文件 - 点击
Unstaged列表中你准备提交的文件(可以配合Ctrl或Shift来选中多个文件), 选中后点击Stage按钮, 文件就会被移到Stage列表(暂存区)
- 将改动放入暂存区(stage)
- 新建一个commit
- 在differ窗口(比较文件内容差异的窗口)下, 有两个文本框, 一个显示“Commit Subject”, 意为提交对象(也就是commit的标题);一个显示“Description”, 意为描述。“Commit Subject”是必须要填写的, “Description”可以作为补充commit内修改内容的详细介绍或者补充, 不过和“Commit Subject”不同, “Commit Subject”可以留空不填写
- 如图所示:
- 填写完毕后, 点击右下角
Commit xx File(xx为数字, 随着stage列表里的文件数量而改变), 即可完成commit流程
- 推送你的commit(提交)
- 完成之前的操作后, 你的commit(提交)会在本地生成, 这时需要推送到远程仓库端, 点击左上角的
Push按钮即可把本地新建的commit推送到远程仓库端, 至此, 整个提交流程已经完成
- 完成之前的操作后, 你的commit(提交)会在本地生成, 这时需要推送到远程仓库端, 点击左上角的