私人 GitLab 使用方法

GitLab 是一个开源项目,使用它可以在自己的服务器上搭建私人的 Git 平台。私人 Git 平台的好处是它可以进行隐私设置,确保所有的 repo 只能被指定的人看到。

注册与登录

为了用户的隐私,我们的私人 GitLab 平台关闭了自主注册。申请 GitLab 账号请联系工作站管理员:
liuhaoyang@pku.edu.cn

注:GitLab 账号不同于服务器 SSH 账号,因此需要额外申请。申请时请提供 pku 邮箱。申请成功后邮箱中会收到一封 系统的通知邮件,点击邮件中的链接可以设置初始密码。如果没收到邮件请在垃圾邮件中查看。

SSH 配置

GitLab 的 SSH 配置不同于服务器账号,因此二者并不通用。我们的 Git 平台支持 https 和 ssh 两种访问远程仓库的方式。当使用 ssh 方式进行操作时,需要将你的 SSH key 添加到平台的账号中。

  • 首先点击界面右上角的头像,选择 ‘Profile Settings’
    CHN

  • 在最上方的菜单栏选择 ‘SSH keys’
    CHN

  • 将本地的 id_rsa.pub 文件中的全部内容粘贴到 Key 的输入区域。Windows 用户请使用 PuTTY 的密钥管理工具查看密钥内容,并将其全部内容粘贴到这里。

配置完毕后,客户端的操作才能正常进行。你可以对此配置进行测试。使用 PuTTY 进行测试时,如果登录出现闪退表示成功。如果服务器向你询问 git 用户的密码表示配置错误,请重新检查一下你的步骤。

$ ssh git@admin-bicmr.cn
(omitted welcome information)

PTY allocation request failed on channel 0
Welcome to GitLab, Haoyang Liu!
Connection to admin-bicmr.cn closed.

基本操作

有关创建,修改仓库属性等操作建议在 GitLab 网页版进行,而进行文件上传,删除,代码更新等操作建议使用本地的命令行或客户端。

我们的 GitLab 平台的主要功能有两个:讨论班文件的共享以及合作开发编程项目。当进行共享文件时,建议给所有被共享的人 Developer 权限,并将被共享的分支(branch)的保护状态(protected)取消。 当进行合作编程时,建议每一个组内人员在自己的账号下 folk 一个相同的项目,而不必要直接在主管人员的 repo 下修改。

命令行模式(建议 Linux/Mac OS 使用)

新建仓库

  • 点击界面上的 New Project 按钮
    CHN
    并输入此工程的名字,介绍。

  • 进入工程后,点击右上角的设置按钮,并设置可以参加此工程的成员(Members)。
    CHN

  • 根据工程下方的提示,在本机上新建本地仓库。其中 <URL> 是此工程的地址,可以在工程界面上找到。

git clone <URL>
cd test2
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

或者将本地已有的文件夹变成一个 Git 仓库,并推送到远程服务端。其中 <existing_folder> 是你本地的已有文件夹。

cd <existing_folder>
git init
git remote add origin <URL>
git add .
git commit
git push -u origin master

编辑仓库/提交更改

在本地的编辑必须进行在已经设置为 Git 仓库的文件夹内。

你可以用任何的工具对工程内的任意文件进行修改,当修改完毕时,你必须将本地工作目录下的修改提交到服务器端完成同步。具体的步骤如下。

  • 将修改的内容添加至索引。进入本地仓库的根目录,然后输入:

$ git add .
  • 将修改提交到仓库中。注意,此时远程仓库还未更新。必要时,可以输入此次提交的详细信息,也就是下面命令中的 description 位置。

$ git commit -m "description"
  • 将修改推送至远程分支。此时如果你对该远程分支有写入权限,那么服务器端就会显示更新。

$ git push [<repo> [<refspec>]]

这里 repo 表示远程仓库的 URL 或者是远程仓库名字,refspec 表示目标,通常是分支名字或者标签。
默认情况下,可以使用如下命令

$ git push origin master

表示推送到 origin 主机上的 master 分支。

同步/更新本地文件

当远程仓库有更新时,必须通过下面的命令来同步远程和本地仓库的文件,以保证所有文件都处于最新的版本。

$ git pull [<repo> [<refspec>]]

其中 repo 和 refspec 的含义与上文相同。

客户端模式(建议 Windows 使用)

在这里推荐使用 SourceTree 客户端进行操作。

使用 SourceTree 时,需要配置 SSH 无密码验证。请确保在安装 SourceTree 时选择安装了内置 PuTTY,并使用 PuTTYGEN 生成了 ppk 密钥文件。

在 SourceTree 菜单中选取 工具->选项,在弹出的窗口中即可使用 ppk 文件进行无密码验证。

新建仓库

按照上文 Linux 的方式在网页上创建仓库后,我们需要建立本地仓库。

打开 SourceTree,选择“克隆/新建”,并在打开的窗口中输入 URL,本地目录等信息。

CHN
其中 URL 就是工程的地址,可以在工程界面上找到。

编辑仓库/提交更改

在本地的编辑必须进行在已经设置为 Git 仓库的文件夹内。

你可以用任何的工具对工程内的任意文件进行修改,当修改完毕时,你必须将本地工作目录下的修改提交到服务器端完成同步。具体的步骤如下。

CHN

  • 将修改的内容添加至索引。在图中点击“Stage All”即可。

  • 创建修改提交(commit)。注意,此时远程仓库还未更新。点击图中左上方“提交”,然后再最下面输入提交信息。点击“提交”。

  • 将修改推送至远程分支。此时如果你对该远程分支有写入权限,那么服务器端就会显示更新。点击上方菜单栏的“推送”即可。

同步/更新本地文件

在上图界面中点击“拉取”即可自动同步远程仓库到本地。