リポジトリ
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
あなたのリポジトリは、あなたのGitLabプロジェクトのコンポーネントです。コードはリポジトリに保存され、バージョン管理で変更を追跡します。
各リポジトリはGitLabプロジェクトの一部であり、GitLabプロジェクトなしでは存在できません。プロジェクトは、リポジトリの設定オプションを提供します。
リポジトリを作成する
リポジトリを作成するには、次のいずれかを行います:
リポジトリにファイルを追加する
リポジトリにファイルを追加できます:
- プロジェクトを作成する場合、または
- プロジェクトの作成後、次のオプションを使用します:
UIからファイルを追加する
GitLab UIからファイルを追加またはアップロードするには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- ファイルをアップロードするディレクトリに移動します。
- ディレクトリ名の横にあるプラスアイコン( )> ファイルをアップロードを選択します。
- ファイルをドロップまたはアップロードします。
- コミットメッセージを入力します。
- オプション。変更を加えてマージリクエストを作成するには、ターゲットブランチに、リポジトリのデフォルトブランチではないブランチ名を入力します。
- ファイルをアップロードを選択します。
リポジトリへの変更をコミットする
リポジトリ内のブランチへの変更をコミットできます。コマンドラインを使用する場合は、git commitを使用します。
コミットを使用してコミュニケーションとコラボレーションを改善する方法、パイプラインをトリガーまたはスキップする方法、変更を取り消す方法については、コミットを参照してください。
リポジトリのクローンを作成する
以下を使用してリポジトリのクローンを作成できます:
- コマンドライン:
- GitLab UI:
リポジトリのソースコードをダウンロードする
リポジトリのソースコードを圧縮ファイルとしてダウンロードするには、次の手順に従います:
左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
ファイルリストの上にあるコードを選択します。
オプションから、ダウンロードするファイルを選択します:
Source code(ソースコード):
表示している現在のブランチからソースコードをダウンロードします。利用可能な拡張子:
zip、tar、tar.gz、tar.bz2。Directory(ディレクトリ):
特定のディレクトリをダウンロードします。サブディレクトリを表示している場合にのみ表示されます。利用可能な拡張子:
zip、tar、tar.gz、tar.bz2。アーティファクト:
最新のCI/CDジョブからアーティファクトをダウンロードします。
生成されたアーカイブのチェックサムは、リポジトリ自体が変更されていなくても変更される可能性があります。たとえば、GitまたはGitLabが使用するサードパーティライブラリが変更された場合に発生します。
Gitリビジョンでリポジトリを表示
特定のGitリビジョン(コミットSHA、ブランチ名、タグなど)のすべてのリポジトリファイルとフォルダーを表示するには、次の手順に従います:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 上部にあるGitリビジョンの選択ドロップダウンリストを開くには、選択します。
- Gitリビジョンを選択または検索します。
また、commitsページから、特定のGitリビジョンのファイルを表示したり、参照したりすることもできます。
リポジトリの言語
GitLabは、デフォルトブランチで使用されているプログラミング言語を検出します。この情報は、Project overview(プロジェクトの概要)ページに表示されます。
新しいファイルが追加されると、この情報の更新に最大5分かかる場合があります。
リポジトリ言語を追加する
すべてのファイルが検出され、Project overview(プロジェクトの概要)ページにリストされるわけではありません。ドキュメント、ベンダーコード、ほとんどのマークアップ言語は除外されます。サポートされているファイルと言語のリストを表示するには、サポートされているデータ型を参照してください。
この動作を変更し、デフォルト設定に追加のファイルタイプを含めるには:
リポジトリのルートディレクトリに、
.gitattributesという名前のファイルを作成します。特定のファイルタイプを含めるようにGitLabに指示する行を追加します。たとえば、
.protoファイルを有効にするには、以下を追加します:*.proto linguist-detectable=true
この機能は、過剰なCPUを使用する可能性があります。問題が発生した場合は、リポジトリの言語: 過剰なCPU使用率のトラブルシューティングセクションを参照してください。
リポジトリのコントリビューター分析
選択したプロジェクトブランチへのコミット数の経時的な折れ線グラフ、および各プロジェクトメンバーによるコミット数の折れ線グラフを表示できます。詳細については、コントリビューター分析を参照してください。
リポジトリの履歴グラフ
リポジトリグラフには、ブランチやマージなど、リポジトリネットワークの視覚的な履歴が表示されます。このグラフは、リポジトリ内の変更の流れを確認するのに役立ちます。
リポジトリの履歴グラフを表示するには、プロジェクトのコード > リポジトリグラフに移動します。
リポジトリパスの変更
リポジトリパスが変更されると、GitLabはリダイレクトを使用して、古い場所から新しい場所への移行を処理します。
ユーザーの名前を変更したり、グループパスを変更したり、リポジトリの名前を変更したりすると、次のようになります:
- ネームスペースのURLとその配下にあるすべて(プロジェクトなど)は、新しいURLにリダイレクトされます。
- ネームスペース配下のプロジェクトのGitリモートURLは、新しいリモートURLにリダイレクトされます。場所が変更されたリポジトリにプッシュまたはプルすると、リモートを更新するように促す警告メッセージが表示されます。名前変更後も、自動化スクリプトまたはGitクライアントは引き続き動作します。
- リダイレクトは、元のパスが別のグループ、ユーザー、またはプロジェクトによって要求されない限り使用できます。
- APIリダイレクトは、明示的にフォローする必要がある場合があります。
パスを変更した後、次のリソースで既存のURLを更新する必要があります:
- インクルードステートメント (
include:componentを除く): そうしないと、パイプラインは構文エラーで失敗します。CI/CDコンポーネントの参照は、リダイレクトに従うことができます。 - 数値のネームスペースおよびプロジェクトIDの代わりにエンコードされたパスを使用するネームスペースAPIコール。
- Dockerイメージ参照。
- プロジェクトまたはネームスペースを指定する変数。
- CODEOWNERSファイル。
関連トピック
- VS Code用GitLab Workflow拡張機能
- ロックファイルを使用して変更の競合を防ぐ
- リポジトリAPI
- ファイル
- ブランチ
- ディレクトリを作成する
- ファイル履歴を検索する
- 行ごとの変更を識別する(Git blame)
トラブルシューティング
リポジトリへのプッシュのシーケンスを検索する
コミットが「見つからない」と思われる場合は、リポジトリへのプッシュのシーケンスを検索します。このStackOverflowの記事では、強制プッシュなしでこの状態になる方法が説明されています。別の原因として、git reset操作でHEAD refを変更するサーバーフックが誤って設定されていることが考えられます。
ターゲットブランチの以下のサンプルコードからの出力を確認すると、出力のステップ実行時に、from/toコミットに不連続性が見られます。新しいプッシュのcommit_fromは、前のプッシュのcommit_toと等しくなければなりません。そのシーケンスの中断は、1つ以上のコミットがリポジトリの履歴から「失われた」ことを示します。
Railsコンソールを使用して、次の例では、最後の100件のプッシュをチェックし、commit_fromエントリとcommit_toエントリを出力します:
p = Project.find_by_full_path('project/path')
p.events.pushed_action.last(100).each do |e|
printf "%-20.20s %8s...%8s (%s)", e.push_event_payload[:ref], e.push_event_payload[:commit_from], e.push_event_payload[:commit_to], e.author.try(:username)
end ; nilシーケンスの中断を示す出力例(4行目):
master f21b07713251e04575908149bdc8ac1f105aabc3...6bc56c1f46244792222f6c85b11606933af171de root
master 6bc56c1f46244792222f6c85b11606933af171de...132da6064f5d3453d445fd7cb452b148705bdc1b root
master 132da6064f5d3453d445fd7cb452b148705bdc1b...a62e1e693150a2e46ace0ce696cd4a52856dfa65 root
master 58b07b719a4b0039fec810efa52f479ba1b84756...f05321a5b5728bd8a89b7bf530aa44043c951dce root
master f05321a5b5728bd8a89b7bf530aa44043c951dce...7d02e575fd790e76a3284ee435368279a5eb3773 rootエラー: Xcodeがリポジトリのクローン作成に失敗する
GitLabは、許可されたSSHキーのリストを制限するオプションを提供します。SSHキーが許可リストにない場合は、The repository rejected the provided credentialsのようなエラーが発生する可能性があります。
この問題を解決するには、サポートされているSSHキータイプのガイドラインに適合する新しいSSHキーペアを作成します。サポートされているSSHキーを生成したら、リポジトリのクローン作成を再度試してください。

