添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

要防止由无法解决的合并冲突导致的工作浪费需要不同的工作方式,意味着需要明确请求写入权限,并在您开始之前,验证没有其它人正在编辑同一个文件。

尽管分支策略对于源代码和纯文本通常很有效,因为不同的版本可以合并在一起,但它们不适用于二进制文件。

设置文件锁定后,可锁定文件默认为 只读

当文件被锁定时,只有锁定该文件的用户才能对其进行修改。该用户被称为“持有锁”,因为一次只有一个用户可以锁定一个文件。当文件或目录被解锁时,被称为用户“释放锁”。

极狐GitLab 支持两种不同的文件锁定模式:

独占文件锁 ,适用于二进制文件: 通过命令行 使用 Git LFS 和 .gitattributes 完成,它可以防止在任何分支上修改锁定的文件。 默认分支文件和目录锁 通过 GitLab UI 完成,它可以防止在默认分支上修改锁定的文件和目录。

任何在仓库中至少拥有开发者权限的人都可以创建锁。

只有锁定文件或目录的用户才能编辑锁定的文件。其它用户无法通过推送、合并或任何其他方式修改锁定的文件,并显示如下错误: The path '.gitignore' is locked by Administrator

独占文件锁

此过程允许您锁定单个文件或文件扩展名,它是通过命令行完成的,不需要极狐GitLab 付费订阅。

Git LFS 以跟踪文件以减少 Git 仓库的存储而闻名,但它也可用于 锁定文件 。 这是用于独占文件锁的方法。

安装 Git LFS

在开始之前,请确保您的计算机中有 Git LFS 安装 。打开终端窗口并运行:

git-lfs --version

如果不能识别此命令,则必须安装它。有多种安装方式,可以根据自己的操作系统选择。要使用 Homebrew 安装它:

brew install git-lfs

安装后,在终端窗口中打开您的本地仓库,并在您的仓库中安装 Git LFS。如果您确定已经安装了 LFS,则可以跳过此步骤。 如果您不确定,重新安装亦无害处:

git lfs install

您需要维护者角色通过命令行,为您的项目配置独占文件锁。

在使用文件锁定之前要做的第一件事是告诉 Git LFS 哪种文件是可锁定的。以下命令将 PNG 文件存储在 LFS 中并将它们标记为可锁定:

git lfs track "*.png" --lockable

执行上述命令后,一个名为 .gitattributes 的文件被创建或更新为以下内容:

*.png filter=lfs diff=lfs merge=lfs -text lockable

您还可以在不使用 LFS 的情况下将文件类型注册为可锁定(例如,能够在实现 LFS 文件锁定 API 的远程服务器中锁定/解锁您需要的文件)。为此,您可以手动编辑 .gitattributes 文件:

*.pdf lockable

.gitattributes 文件是该过程的关键,必须 推送到远端仓库以使更改生效。

将文件类型注册为可锁定后,Git LFS 会自动将它们在文件系统上设为只读。这意味着您必须在编辑它之前锁定文件

通过锁定文件,您可以确认没有其它人正在编辑它,并在您完成之前阻止其他任何人编辑该文件。另一方面,当您解锁文件时,您表示您已完成编辑并允许其它人对其进行编辑。

要使用独占文件锁定来锁定或解锁文件,请在您的仓库目录中打开一个终端窗口并运行如下所述的命令。

锁定一个文件:

git lfs lock path/to/file.png

解锁文件:

git lfs unlock path/to/file.png

您还可以通过文件 ID 解锁(当您查看锁定的文件时由 LFS 提供):

git lfs unlock --id=123

如果由于某种原因您需要解锁一个未被自己锁定的文件,只要您对项目具有维护者权限,就可以使用 --force 标志:

git lfs unlock --id=123 --force

您通常可以将文件推送到极狐GitLab,无论它们是锁定的还是未锁定的。

note 虽然可以通过 Git LFS 命令行界面创建和管理多分支文件锁,但可以为任何文件创建文件锁。

查看独占锁定的文件

要列出本地用 LFS 锁定的所有文件,请在仓库中打开一个终端窗口并运行:

编辑可锁定文件

一旦文件配置为可锁定,它被设置为只读。 因此,您需要在编辑之前锁定它。

共享项目的建议工作流程:

  • 锁定文件。
  • 编辑文件。
  • 提交您的更改。
  • 推送到仓库。
  • 审核、批准和合并您的更改。
  • 解锁文件。
  • 默认分支文件和目录锁