你能克隆 GitLab 片段吗?

Can you clone GitLab snippets?

创建它们很容易,但我不知道如何克隆它们并进行离线编辑。

可能吗?

May 2020, for GitLab 13.0: 是的!

Versioned Snippets

Snippets are useful for sharing small bits of code and text that may not belong in the main project’s codebase.

These items are important to groups and users who rely on them for other tasks, like scripts to help generate diagnostic output or setup supporting services for testing and demo environments.

Unfortunately, a lack of version control has made it hard to know if a snippet was the latest version or what changes may have happened and how to reconcile those.

Snippets in GitLab are now version controlled by a Git repository.

When editing a Snippet, each change creates a commit. Snippets can also be cloned to make edits locally, and then pushed back to the Snippet repository.

This is the first step in enabling more collaboration on Snippets.
In future releases we’ll introduce support for multiple files, continue to expand features and expand permissions.

参见 documentation and issue


并且 GitLab 13.5(2020 年 10 月):

Snippets with multiple files

Engineers often use Snippets to share examples of code, reusable components, logs, and other items. These valuable pieces of information often require additional context and may require more than one file. Sharing a link to multiple files or multiple Snippets makes it challenging for users to piece this context together and understand the scope of what is being presented.

In GitLab 13.0, we laid a foundation for Snippets by giving them version control support based on a Git repository. Version control and the history it provides are an important piece of context when looking at code and understanding its purpose, but it may not be everything.

GitLab now supports multiple files inside of a single Snippet, so you can create Snippets composed of multiple parts. It broadens its use to endless possibilities. For example:

  • A snippet that includes a script and its output.
  • A snippet that includes HTML, CSS, and JS code, from which the result can be easily previewed.
  • A snippet with a docker-compose.yml file and its associated .env file.
  • A gulpfile.js file coupled with a package.json file, which together are used to bootstrap the project and manage its dependencies.

Providing all of these files in a single Snippet gives more options for the types of content that can be shared and the context that is provided when looking at them. We’re excited to see the types of content you will create and share using Snippets with multiple files!

See Documentation and Issue.


2015年:原答案:不直接。

Gitlab 在每个项目下都有片段部分。
喜欢:http://gitabhq.com/project-name/snippets/

但是不能克隆。

有一个request for a GitHub Gist-like feature for GitLab (based on Gistie), also asked in GitLab suggestions
但当时并没有实施。


2019 年更新为 by eli, and documented in "Downloading snippets”(GitLab 10.8+)

For now its just possible to download snippets, e.g.

https://gitlab.com/snippets/SNIPPET_ID/raw?line_ending=raw – 

您可以像这样通过 ID 克隆

for i in $(seq  1 100); do git clone git@gitlab_url:snippets/"$i".git; done