🪣GitLabリポジトリの作成・初期設定編

開発を始めるなら、まずはソースコードを管理するリポジトリを作らなければいけませんよね🤔

リポジトリを作成するためのツールといえば、真っ先に思い浮かぶのがGitHubだと思いますが、僕はGitLabを愛用しています。

GitLabのmarkdownエディタはGitHubよりも使いやすく、読みやすいので僕にとってはGitLabの方がしっくりきます。

そんなGitLabでリポジトリを作る方法と初期設定についてご紹介します🌟

⚠️ 注意事項

以下が完了していることを前提に解説しているので、まだの方は、公式のガイドやチュートリアルを参考に準備を進めてください😊

	•	GitHubアカウントの作成
	•	Gitのインストール
	•	SSHキーの設定


# 🛠️ リポジトリの作成

準備が整ったらまずはこちらのページにアクセスしてください👇

https://gitlab.com/projects/new

ページを開くとこんな選択肢が並んでいます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860455/abbd1d31-8126-73a2-70fa-58782142800d.png)


| 番号 | 選択肢                     | 説明                                                                 |
|------|----------------------------|----------------------------------------------------------------------|
| 1    | Create Blank Project       | 完全に空の状態からプロジェクトを始める                      |
| 2    | Create From Template       | 既存のテンプレートを利用して、プロジェクトを作成         |
| 3    | Import Project             | 他の場所にあるプロジェクトをインポートする
| 4    | Run CI/CD for External Repository | 外部のリポジトリに対してCI/CDを実行          |


左上の「Create Blank Project」をクリックするとこの画面に遷移します。

https://gitlab.com/projects/new#blank_project

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860455/2abcab5b-f842-03c2-15af-963045baad43.png)

上記のフォームが表示されるので、こちらの表を参考に入力します。

| 項目                                  | 日本語訳                                      | 設定値                                     | 説明                                      |
|---------------------------------------|---------------------------------------------|-------------------------------------------|------------------------------------------|
| Project name| プロジェクト名| 好きな名前を入力||
| Project slug| プロジェクトのスラッグ| プロジェクト名を短くしたもの|自動生成されるので特に悩む必要はありません。|
| Project deployment target (optional) | デプロイ先のターゲット| Virtual machine (for example, EC2)        | そのままスキップでも問題ありません。 |
| Visibility Level| 可視性レベル（Private または Public を選択） | Private（非公開）が無難| あとからでも公開できるので迷ったらPrivate|
| Project Configuration - Initialize repository with a README | リポジトリをREADME付きで初期化する          | Yes（おすすめ）                            ||
| Project Configuration - Enable Static Application Security | 静的アプリケーションセキュリティを有効化する | Yes（おすすめ）                            | Yesにするとリポジトリ作成時に.gitlab-ci.ymlが作成され、コードにセキュリティ上の問題がないかデプロイ時に自動チェックする|

フォームの入力が完了したら、左下にある「Create Project」ボタンを押すとプロジェクトが作成され、そのトップページに遷移します🎉

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860455/d339f3f5-2905-9cdd-c87d-5e138f4f740d.png)

# 🛠️ リポジトリのclone

作成したリモートリポジトリをローカルのPCに丸ごとコピー（clone）します😊

### 1. clone先の親ディレクトリに移動する

ソースコードをcloneする親ディレクトリに移動し、以下のコマンドをターミナルに入力してください。

```
cd 対象ディレクトリ
```

### 2. リポジトリをCloneする

プロジェクトのトップページの右上の青色の「Code」のドロップダウンボタンを押し、「Clone with SSH」をコピーし、以下のような形式でコマンドをターミナルに入力します👇

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860455/3ae9e079-e57d-bf8b-4c78-e1b6edf65dfa.png)

```
git clone コピーしたテキスト（git@gitlab.com:ユーザー名/プロジェクト名.gi） ディレクトリ名（※1）
```

`ls`などで確認すると指定したディレクトリが作成され、ソースコードが丸ごとダウンロードされているのが確認できると思います🎉

# 🛠️ ブランチの作成

Gitプロジェクトを運用する際には、環境ごとにブランチを作成して管理するのが一般的です。

ここでは参考として「master」「release」「test」の3つのブランチを作成します🚀

### 1. クローンしたディレクトリに移動

まず、リポジトリをクローンしたディレクトリに移動します。以下のコマンドを実行してください👇

```
cd 対象ディレクトリ
```

💡 対象ディレクトリには、リポジトリをクローンした時のコマンドの `git clone コピーしたテキスト（git@gitlab.com:ユーザー名/プロジェクト名.gi） ディレクトリ名（※1）` の ※1 のフォルダのpathを指定します。

### 2. 必要なブランチを作成

１）masterブランチを作成

```
git checkout -b master
```

２）releaseブランチを作成

```
git checkout -b release
```

３）testブランチを作成

```
git checkout -b test
```

すべてのブランチを作成したら、以下のコマンドでリモートリポジトリに一括してプッシュします🚀 

```
git push -u origin master release test
```

※ `-u` を付けると、ローカルブランチがデフォルトでリモートブランチを追跡するようになります。これにより、次回から以下のようにブランチ名を省略して `git pull` や `git push` などの操作できるようになります

# 🛠️ リポジトリーの設定

リポジトリのブランチが作成できたら、次は基本的な設定を整えていきましょう✨  
ここでは以下の2つの設定を行います👇

1. **Branch defaultsの設定** 🎯  
   リポジトリのデフォルトブランチを適切に設定します。  
   新しいマージリクエストや初期の操作時に選ばれる基準となるブランチです。

2. **Protected branchの設定** 🔒  
   重要なブランチを保護することで、誤操作を防ぎ、安全な開発環境を作ります。

これらをしっかり設定して、プロジェクトを安全かつ効率的に進めていきましょう🚀

まずはリポジトリのサイドメニューにある「Settings（セッティングス）」をクリックし、その中にある「Repository（リポジトリ設定）」を選択します。これでリポジトリの詳細設定画面に移動します✨

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860455/19eb5fe3-8619-a9e9-f40a-27b890b44746.png)

## Branch defaultsの設定 🎯

リポジトリのデフォルトブランチを設定する方法について解説します✨

デフォルトブランチとは、新しいマージリクエストや初期のコミット時に、Gitが自動で選択するブランチのことです。

画面の一番上にある「Default branch」というアコーディオン（折りたたみメニュー）を探し、クリックして開きます👇

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860455/4a77b03d-e18f-dc67-3d4c-7635235d64f7.png)

アコーディオンを開くと、現在のデフォルトブランチが「main」に設定されているのが分かります。
ここで、ドロップダウンメニューから「test」を選択します。

（好みですが）デフォルトブランチの「**Auto-Close Reference**」のチェックは外しておくのがおすすめです🔧  

※ このチェックを入れたままにしておくと、このブランチにマージされた時にマージ元のブランチが自動で削除されるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860455/d24ec177-1769-276b-4dc0-d24b9da7b232.png)

設定「Save changes」ボタンをクリックします💾✨

## Protected branchの設定🔒  

Protected Branches を設定することで、重要なブランチを意図しない変更から守ることができます。

最初にプロジェクトを始めたときは、メンバーが自分だけということが多いと思うので、初期段階ではあまり気にしなくても大丈夫ですが、仲間が参加将来のために一応設定しておきましょう😊

今回はmasterブランチを保護します😊

「protected branches」というアコーディオン（折りたたみメニュー）を探し、クリックして開くと、現在保護されているブランチが一覧で表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860455/615a7356-1c5e-3dd0-a222-04a4d2b5d89c.png)

その中に「メインブランチ」が表示されますが、このブランチは開発では使用しないため、右端にある「Unprotect」ボタンをクリックして設定を削除します。

その後、「Add Protected Branch」 ボタンを押して、フォームを開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860455/7632530b-f1dd-f689-922b-645b3bc2f3ca.png)

以下の表を参考に入力します😊

| 項目                           | 設定値                    |
|--------------------------------|---------------------------|
| Branch                    | `master`                 |
| Allow to Merge（マージ権限） | 特に理由がなければ`Maintainers`と設定 |
| Allow to Push and Merge（プッシュとマージ権限） | 特に理由がなければ`Maintainers`と設定。 |

※ GitLabのユーザーのロールは以下のようになっています。



| ロール       | 説明                                                                                     |
|--------------|------------------------------------------------------------------------------------------|
|Guest| 限られた情報の閲覧のみ可能。主にビューワー向け。                                           |
|Reporter| リポジトリの内容を読むことが可能。Issueの作成できます。                       |
|Developer| コードの編集やプッシュ、マージリクエストの作成が可能。開発担当者に割り当てることが多い。     |
| Maintainer| ブランチ保護やCI/CDの設定、リポジトリの管理などが可能。リーダーや管理者向け。               |
|Owner| グループ全体を管理。プロジェクト単位ではなくグループ単位で使用します。  |

作成すると以下のように表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860455/7a5c4567-2605-26af-1655-eb5af02cedcf.png)


# 🗑️ 使わないブランチを削除してスッキリしよう

最初にリポジトリを作ったときに「main」というブランチが作成されていましたが、もう使わないので削除してスッキリさせちゃいましょう🧹✨

まずはローカル環境（自分のPC）にあるmainブランチを削除します。以下のコマンドを実行してください👇

```
git branch -d main
```

次に、リモートリポジトリ（GitLab上）にあるmainブランチを削除します。以下のコマンドを実行してください👇

```
git push origin --delete main
```

# 🎉 まとめ

今回は、GitLabでリポジトリを作成する方法を解説しました✨  

ブランチやリポジトリの設定は、皆さんそれぞれのプロジェクトや好みに合わせて自由にカスタマイズしていただければと思いますが、今回紹介した手順を参考にしていただければ、基本的なリポジトリの作成はバッチリ進められるはずです💪

リポジトリの作成は、プロジェクトの最初の一歩です。

ここをスムーズに進めることで、気持ちよくプロジェクトをスタートできるはず🚀  

ぜひ楽しくプロジェクトを進めてくださいね😊