【Mac】Gitrabからソースのクローン&Gitへのソースのアップロード

Gitのリポジトリ（ソースファイル一式）を端末上にクローンする方法を、初心者向けにわかりやすく説明します！

---

### 🔹 **Gitの「クローン」とは？**
「クローン（clone）」とは、Gitに保存されているプロジェクトを、自分の端末にコピーすることです。  
これをすると、端末上でファイルを編集したり、新しいファイルを追加したりできるようになります。

---

### 🔹 **クローンする手順**
#### ✅ **1. Gitをインストールする（初めての人向け）**
Gitがパソコンに入っていない場合は、まずインストールが必要です。  
以下のサイトからダウンロードできます：

- Windows：[Git for Windows](https://git-scm.com/download/win)
- Mac：[Git for Mac](https://git-scm.com/download/mac)

Macの場合
---
macOS に Git をインストールするには、いくつかのオプションがあります。ソース以外のディストリビューションはサードパーティによって提供されており、最新のソースリリースと一致しない可能性があることに注意してください。

macOS に Git をインストールするには、次のいずれかのオプションを選択します。

- Homebrewをインストール
https://brew.sh/
```sh
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
1. Homebrewをパスに追加 ターミナルで以下のコマンドを実行：
```sh
echo >> ~/.zprofile
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
```
2. Homebrewが正しく動くか確認
```sh
brew help
```
上記コマンドを実行し、Homebrewのヘルプメニューが表示されればOK！


- brewを利用し、Gitをインストール
```sh
$ brew install git
```
- インストールできたら、ターミナル（コマンドプロンプト）で以下を実行して確認
```sh
git --version
```
バージョンが表示されればOK！
---
Windowsの場合

---

#### ✅ **2. クローンするリポジトリのURLをコピー**
GitHubなどのリポジトリページを開き、「Code」ボタンをクリックすると、  
「HTTPS」や「SSH」のURLが表示されるので、それをコピーします。

今回はAzure AOAIのリファレンスアーキテクチャのgitを例とします。

例：
```
https://github.com/Azure-Samples/azure-search-openai-demo.git
```

---

#### ✅ **3. ターミナル（またはコマンドプロンプト）を開く**
**Windowsの場合**：「コマンドプロンプト」または「Git Bash」を開く  
**Macの場合**：「ターミナル」を開く

---

#### ✅ **4. クローンするコマンドを実行**
- git用のディレクトリ作成・移動
ターミナルで、クローンしたいフォルダ（例: `C:\Users\yourname\git`）に移動してから、以下のコマンドを実行：
```sh
git clone https://github.com/Azure-Samples/azure-search-openai-demo.git
```

実行すると、リポジトリの内容が現在のフォルダ内にダウンロードされます。

---

#### ✅ **5. クローンできたか確認**
クローンが成功したら、以下のコマンドでフォルダの中を確認：
```sh
ls  # Mac / Linux
dir # Windows
```
今回であれば「azure-search-openai-demo」があれば成功。


### 🔹 **Gitへソースをプッシュ(アップロード)する手順**

---
GitLabへソースコード一式をアップロードするには、**Gitを使う方法**が一般的です。GUI（Webブラウザ）上からのアップロードは、**一度にアップロードできるファイルサイズが制限されている**ため、エラーになることがあります。  
そのため、以下の手順で**Gitを使ってアップロード（プッシュ）**しましょう。  

---

## **1. GitLabのリポジトリを作成する**  
1. GitLabにログインする  
https://gitlab.com/rag7552512/azure-search-openai-demo

2. **「New Project」または「Create a project」** をクリック  
3. **「Blank Project」** を選択  
4. 必要な情報を入力  
   - **Project name**：リポジトリ名（例：`my-project`）  
   - **Visibility Level**：Public（公開）・Private（非公開）などを選択  
5. **「Create project」** をクリック  

---

## **2. ローカルフォルダをGit管理にする**  
アップロードしたいソースコードがあるフォルダを開き、**ターミナル（またはコマンドプロンプト）**で以下を実行します。  

1. **フォルダに移動**（例：`C:\projects\my-project` にある場合）  

   ```sh
   cd C:\projects\my-project
   ```

2. **Gitリポジトリを初期化**  

   ```sh
   git init
   ```

  
3. リモートURLを個人アクセストークン（PAT） を使う方式に変更
   - GitLabで 個人アクセストークン（PAT） を発行する
   - GitLabは現在、パスワード認証を廃止しており、**個人アクセストークン（PAT）**の使用を推奨しています。  
   - もしパスワードを入力しているなら、PATを使用するように変更してください。  

1. GitLabで **個人アクセストークン（PAT）** を発行する  

   - https://docs.gitlab.com/user/profile/personal_access_tokens/

   1. 左側のサイドバーで、アバターを選択します。
   2. プロフィールの編集を選択します。
   3. 左側のサイドバーで、「アクセス トークン」を選択します。
   4. 新しいトークンの追加を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3323946/2f9bdcc0-9fbf-4d66-97bd-82402096cdca.png)
   5. 「トークン名」にトークンの名前を入力します。
      - オプション。トークンの説明に、トークンの説明を入力します。
   6. 「有効期限」に、トークンの有効期限を入力します。
   ```
   トークンは、その日付の UTC の午前 0 時に期限切れになります。有効期限が 2024-01-01 のトークンは、2024-01-01 の 00:00:00 UTC に期限切れになります。
   有効期限を入力しない場合、有効期限は現在の日付から 365 日後に自動的に設定されます。
   デフォルトでは、この日付は現在の日付より最大 365 日後に設定できます。GitLab 17.6 以降では、この制限を 400 日まで延長できます。
   必要なスコープを選択します。
   ```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3323946/476cdb24-a700-4722-aa66-23c14f817ab2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3323946/b5050ed2-62b3-4185-9518-88dadbd88cc2.png)

   7. 個人アクセストークンの作成を選択します。
   8. 個人アクセス トークンを安全な場所に保存してください。ページを離れると、トークンにアクセスできなくなります。


4. **GitLabリポジトリと接続**（HTTPの場合）  

   ```sh
   git remote add origin https://oauth2:<YOUR_PERSONAL_ACCESS_TOKEN>@gitlab.com/rag7552512/azure-search-openai-demo.git
   ```
5. 変更されたことを確認する

   ```
   git remote -v
   ```


---

## **3. ソースコードをアップロード（プッシュ）する**  
次に、ソースコードをGitLabにアップロードします。  

1. **すべてのファイルを追加**  

   ```sh
   git add .
   ```

2. **変更をコミット（保存）する**  

   ```sh
   git commit -m "初回アップロード"
   ```


3. **GitLabへプッシュ（アップロード）**  
   ```sh
   git branch -M main  # 「main」ブランチに統一（初回のみ）
   git push -u origin main
   ```

4. **GitLabで確認**  
   GitLabのプロジェクトページを開き、アップロードされたことを確認します。  

   

---


## **4. 次回以降のアップロード（変更を反映する場合）**  
変更があった場合は、以下の手順でアップロードできます。  

```sh
git add .
git commit -m "変更内容の説明"
git push origin main
```

---

**以上の手順で、GitLabへソースコードをアップロードできます！**