USTC LaTeX 是主要支持在线使用的LaTeX平台,基于Overelaf开源版进行的开发,直接支持通过Git仓库同步的功能。 使用Git仓库时,我们可以利用本地的代码编辑器,这比使用浏览器上的编辑器要方便得多,因此记录一下对应的做法。

首先,从网站获取Git仓库链接,通常形如https://latex.ustc.edu.cn/git/xxxxxxx.git,主分支名称为master(这个似乎不可以修改)。 然后将其克隆到本地,并且重新取一个仓库名,例如

1
git clone https://latex.ustc.edu.cn/git/xxxxxxx.git latex_test

由于项目的文件在平台上随时有可能被更改,在本地仓库对代码进行修改之后,远程推送很可能会出现推送失败的情况,对应的处理措施如下:

  • 第一步,我们需要使用其它分支指向本地仓库的最新版本(确保本地的修改不会丢失)
  • 第二步,执行如下命令,确保本地仓库与远程仓库的主分支最新版本保持一致
1
2
3
git fetch --all
git reset --hard origin/master
git pull
  • 第三步,在本地尝试合并分支,然后重新推送

由于平台提供的是HTTPS协议URL,我们在远程操作时需要提供USTC LaTeX平台的用户名和密码, 可以使用下面的命令选择将身份验证信息保存到本地

1
git config credential.helper store

在配置完成后,我们可能需要再执行一次远程操作并输入身份验证信息,Git会将其保存到~/.git-credentials文件中,在下一次远程操作时自动应用。

如果希望改变凭证的存储位置,也可以使用下面的命令将其存储到本地仓库中(显然还需要通过.gitignore将其忽略)

1
git config credential.helper 'store --file=.git-credentials'

注意:

  • 平台的Git仓库不支持force pushforce pull
  • 只提供https协议的仓库链接,不提供ssh协议的仓库链接;
  • 不建议将多个分支推送到远程仓库,因为平台上无法切换Git分支,只会显示主分支的版本;
  • 平台对于通过Git仓库上传的以.开头的隐藏文件有安全隔离措施(允许通过Git仓库上传,但是在平台上无法查看和使用其内容,只允许下载),在平台上直接创建的隐藏文件是可以查看的,但是一旦通过Git仓库修改,也会被隔离。
  • 有时我们需要改变对这种特殊仓库推送时使用的用户名和邮箱,直接修改仓库内的配置文件即可。
  • 对于Overleaf的git功能操作也是类似的,不过它会直接生成一个token用于登录,而且免费账户不提供git服务。

最近测试发现,USTC LaTeX 对于Git的支持还是有问题,虽然通过Git成功推送到远程仓库,但是在平台上完全没有看到内容的更新。