MetricSubs

一个主攻科技/音乐的字幕组

字幕组工作平台简介

1. 版本控制系统(VCS)

此次的工作平台基于版本控制系统Git,并使用了Gitlab服务。

什么是版本管理系统?

文件在工作过程中,会不断地被修改和更新。版本管理系统会追踪文件的变化并将其记录。因此的好处是:

  • 多人可同时编辑一个文件
  • 出错可以找到人背锅
  • 出错的话可以很方便地回滚
什么是Git?

Git是版本管理系统之一,它可以按文件的行数记录更改。举例:

《字幕组工作平台简介》
GitHub – CoFH/ThermalFoundation

红色为删除的行数,绿色为添加的行数。Git会自动识别文件的变化,并将新旧文件行数一一对应。如图,绿色是新增的行,红色是删除的行。

2. Git的一些基本概念

一个Git库,体现为一个文件夹。在这个文件夹中,所有的文件变化/操作都被git记录在一个个的commit中。

Commit

commit: 一次更改。在进行一次文件操作(增/删/改)后,则需要使用commit,来让git将变化的部分记为“一次”更改。“更改”包含多种类型,且一个commit可记录多个文件。
commit完成时,会记录到Git库中。

commit包含几种类型的更改:
1. 新建文件 (记为+)
2. 修改文件 (记为-)
3. 文件被删除(记为~)
一个commit可以包含多个文件,和不同的更改。

文件如果没有发生变化,则git将其标为”Unchanged”。commit时该文件会被无视。
如果新建了文件,则git将其标为”untracked”,此时该文件可视作不在git库中。在将其加入git库前,此文件的任何变化将不会被追踪。使用”git add”可以手动添加文件,不过我们将使用GUI完成。在下一个commit中,该文件会被添加(+1)。
如果有文件发生了更改,则git将此文件标记为”modified”,且git已追踪此变化。在下一个commit中,该文件的变化将被记录(~1)。
如果有文件被删除,则git将此文件标记为”missing”。在下一个commit中,git将此文件删除。(-1)

《字幕组工作平台简介》
In SmartGit

如图,这是SmartGit中的一次commit。我修改了“Google Pixel.txt”,删除了”150px.png”,并新建了一个文本文档(演示用)。由此在commit中显示了三个变化。注意三个文件前的图标:它们代表了这三种变化。右上角则是本次commit的总结:+1 -1 ~1

Push/Pull/Sync

Push: 将本地的commit上传到服务器,并依此更改服务器上的文件。

Pull:将服务器上的commit下载到本地,并依此更改本地文件。

Sync:先push再pull(或者先pull再push)

Fetch

连接服务器获取远程更改,但是先不下载到本地。

例如:服务器上的库 比电脑上的本地库领先两个commit。执行Fetch后,本地客户端则能知道存在这两个commit,但是先不将这两个commit pull到本地。

一般的git客户端都会定期的fetch以保证同步。

冲突

两个人修改了同一个文件,则会产生冲突导一方致无法pull或push。此时merge或rebase即可。相关操作方法见后文。

点赞

发表评论