---
# System prepended metadata

title: VSCode 連動GitLab ，排除設定檔不進行GIT 連動
tags: [WEB, PHP, GIT]

---

**VSCode 連動GitLab ，排除設定檔不進行GIT 連動** - 層次數位客制服務 <img src="https://labspace.com.tw/assets/upload/product//LabSpace-logo-B-03.png" style="float: left; margin-right: 0.5rem;margin-top:-0.3rem; height: 30px;">[LABSPACE](https://shop.labspace.com.tw)

---

要將設定檔推送到 GitLab 上，可以按照以下步驟進行操作。在這裡，我將介紹如何使用 VSCode 進行 Git 操作，以及在 Linux 環境下如何設定推送檔案。

---

### 1\. **在 Linux 上設定 Git：**

如果還沒安裝 Git，可以用以下命令安裝：

```bash
sudo apt update
sudo apt install git
```

#### 配置 Git：

在推送檔案前，必須先配置 Git 使用者資訊：

```bash
git config --global user.name "你的名字"
git config --global user.email "你的電子郵件"
```

#### 初始化 Git 儲存庫：

在你想要推送檔案的目錄中執行以下命令：

```bash
cd /path/to/your/project
git init
```

#### 設定遠端 GitLab 儲存庫：

添加遠端 GitLab 儲存庫的連結。確保你有一個 GitLab 儲存庫，並複製它的 URL。

```bash
git remote add origin https://gitlab.com/你的帳號/你的儲存庫.git
```

### 2\. **推送檔案到 GitLab：**

#### 將設定檔加入版本控制：

使用 `.gitignore` 文件來排除不必要的檔案，如果你有些檔案不想推送，可以在 `.gitignore` 中進行配置。例如，排除所有的 log 檔案：

```bash
*.log
```

接下來，執行以下命令來將檔案提交到 GitLab：

```bash
git add .
git commit -m "Initial commit with configuration files"
git push -u origin master
```

### 3\. **在 VSCode 中使用 Git：**

VSCode 內建了 Git 支援，可以直接進行操作。

#### 安裝 Git：

首先，確保你已經在 Linux 上安裝了 Git，並且配置了 Git 使用者資訊（如上所述）。

#### 使用 VSCode 的 Git 功能：

1. 在 VSCode 中打開專案資料夾。
2. 點擊左側的**版本控制**圖示（小分支圖標）。
3. 如果你還沒初始化 Git，點擊 "Initialize Repository"。
4. 在設定檔上點擊右鍵，選擇 "Stage Changes" 或者直接點擊 "Stage All Changes"。
5. 輸入提交訊息，然後點擊 "✔️ Commit" 按鈕。
6. 點擊 "Push" 按鈕，將變更推送到遠端 GitLab。

#### 推送到 GitLab：

如果是第一次推送，你需要先設置遠端儲存庫。點擊終端，執行以下命令來添加遠端儲存庫：

```bash
git remote add origin https://gitlab.com/你的帳號/你的儲存庫.git
```

然後在 VSCode 中點擊 "Push"。

### 4\. **Linux 中的設定檔管理：**

如果你有一些常見的 Linux 設定檔，比如 `~/.bashrc` 或 `~/.vimrc` 想要推送到 GitLab，步驟如下：

1. 將這些檔案複製到你的專案目錄中，例如：

```bash
cp ~/.bashrc /path/to/your/project/
cp ~/.vimrc /path/to/your/project/
```

2. 然後重複前面的 Git 步驟，將它們提交到 GitLab。

### 小提示：

* 確保你已經在 GitLab 上生成並添加了 SSH 金鑰，這樣推送時不需要輸入帳號和密碼：
  * 創建 SSH 金鑰：
    ```bash
    ssh-keygen -t rsa -b 4096 -C "你的電子郵件"
    ```
  * 複製 SSH 金鑰到 GitLab：
    ```bash
    cat ~/.ssh/id_rsa.pub
    ```

如果不希望部份檔案如：`db_config.php` 檔案被推送到 GitLab 上，可以使用 `.gitignore` 檔案來排除這個檔案。以下是具體的步驟：

### 1\. **在專案目錄下建立或編輯 `.gitignore` 文件：**

* 如果專案目錄中已經有 `.gitignore` 檔案，直接編輯它；如果還沒有，則在專案根目錄中建立一個。

```bash
touch .gitignore
```

### 2\. **在 `.gitignore` 文件中添加 `db_config.php`：**

在 `.gitignore` 檔案中加入 `db_config.php`，這樣 Git 就會忽略這個檔案，並且不會將它推送到 GitLab：

```bash
db_config.php
```

這樣 `db_config.php` 檔案就不會被添加到版本控制中，也不會被推送到 GitLab。

### 3\. **如果 `db_config.php` 已經被追蹤：**

如果 `db_config.php` 已經在 Git 版本控制中，你需要將它從 Git 中取消追蹤，並保持檔案在本地存在。執行以下命令：

```bash
git rm --cached db_config.php
```

此命令會將 `db_config.php` 從 Git 的追蹤中移除，但不會刪除本地檔案。

### 4\. **提交變更：**

完成後，提交你的變更：

```bash
git add .gitignore
git commit -m "Ignore db_config.php from git tracking"
git push
```

這樣，`db_config.php` 就會被忽略，而你其他的檔案可以正常推送到 GitLab。


若你上傳檔案時不希望某些目錄（如 "storage" 目錄）被同步到版本控制系統（即不被 Git 追蹤），可以使用 `.gitignore` 檔案來實現。`.gitignore` 是一個特殊的檔案，用來告訴 Git 哪些檔案或目錄應該被忽略，不會被納入版本控制中。

以下是處理方法：

### 步驟：
1. **建立或編輯 `.gitignore` 檔案**  
   在你的專案根目錄下，檢查是否已經有 `.gitignore` 檔案。如果沒有，可以新建一個：
   - 在終端機中輸入：
     ```
     touch .gitignore
     ```
   - 或者直接用文字編輯器創建一個名為 `.gitignore` 的檔案。

2. **添加忽略規則**  
   打開 `.gitignore` 檔案，然後加入你想忽略的目錄或檔案。例如，如果你不希望 "storage" 目錄被同步，添加以下內容：
   ```
   storage/
   ```
   - 注意：`storage/` 表示忽略名為 "storage" 的目錄及其下所有內容。
   - 如果只是想忽略特定檔案，可以寫入檔案名稱，例如 `storage/example.txt`。

3. **檢查已經被 Git 追蹤的檔案**  
   如果 "storage" 目錄已經被 Git 追蹤（即之前已經被 `git add` 和 `git commit`），單純加入 `.gitignore` 不會生效。你需要先將它從 Git 的追蹤中移除：
   - 執行以下命令：
     ```
     git rm -r --cached storage
     ```
     這會移除 "storage" 目錄的追蹤狀態，但不會刪除本地的實際檔案。

4. **提交更改**  
   修改 `.gitignore` 後，將其提交到 GitLab：
   ```
   git add .gitignore
   git commit -m "忽略 storage 目錄同步"
   git push origin <branch-name>
   ```
   替換 `<branch-name>` 為你目前使用的分支名稱（如 `main` 或 `master`）。

5. **驗證結果**  
   提交後，"storage" 目錄將不會出現在 GitLab 的版本控制中，即使你在本地仍有該目錄，它也不會被同步到遠端倉庫。

### 注意事項：
- 如果 "storage" 目錄是動態生成的（例如由程式產生），確保它的生成邏輯不會影響專案運行。
- 如果你希望本地保留 "storage" 但不希望它出現在 GitLab，`.gitignore` 是最簡單的解決方案。
- 若專案中其他開發者也需要忽略這個目錄，確保他們拉取最新的 `.gitignore` 檔案。

這樣處理後，"storage" 目錄就不會被同步到 GitLab 的儲存庫中了。如果你有其他具體需求，可以進一步說明，我再幫你調整方案！



補充說明：[專案上傳至GITLab](https://hackmd.io/@labspace/Bk1v9F00A)


# <img src="https://labspace.com.tw/assets/upload/product//LabSpace-logo-B-03.png" style="float: left; margin-right: 0.5rem;margin-top:-0.3rem; height: 40px;"> 層次數位空間有限公司


若想要瞭解更多技術資訊或者希望有人可以協助佈建，可洽[層次數位空間有限公司](https://labspace.com.tw)

# !! 一個念頭與想法 !!
您有一個很棒的主意或想法嗎？我們聆聽並為您提供快速分析與規劃提案。層次數位讓您的系統平台更有層次。

[![product](https://labspace.com.tw/assets/upload/product//product.png)](https://web.labspace.com.tw)

