※ Git(三)
- 什麼是 staging area?
在 Git 中,staging area是暫存區的意思,也被稱為索引(index)。透過一個git add 指令把檔案從工作目錄移至暫存區。再透過一個git commit 指令把暫存區的內容移至儲存庫。

image
- 當多人協作時你要開發個功能,但不影響主程式,該怎麼作呢?要下什麼指令?開發好功能後需要下什麼指令合併回主程式?如果衝突了要如何處理?
- 釐清Master、Branch:

- 開發新功能基本的流程:
- 建立新分支:
使用 git branch <branch_name> 指令來新增分支 feature/a:
git branch feature/a
指令說明如下:
- git branch:操作分支相關工作。
feature/a
:欲新增的分支名稱。
- 查看分支:
使用 git branch 指令列出目前所有的分支名稱清單:

指令說明如下:
新增的 feature/a 分支在清單裡出現。而 master 分支名稱前面的星號 *
表示目前我們位在 master 分支上。
可以使用 -v
這個副指令來查看各個分支的最新 commit:

如果想一併查看遠端分支,需要搭配 --all:

- 切換分支:
透過 git checkout
指令來切換目前使用的分支

切換以後,使用 git branch 指令來檢查,你會看到 * 的位置已經從 master 移動至 feature/a。
- 在這個分支上進行你的開發工作,添加、修改、刪除所需的代碼。
- 提交你的更改到分支:
git add .
git commit -m "Add new feature"
- 合併回主程式:
- 切換回主分支:
git checkout main
- 從遠端(remote)更新主分支的最新版本:
git pull origin main
3.合併你的功能分支到主分支:
git merge feature_branch_name
- 解決合併衝突:
- 看到衝突第一件事是用 git status 看看有哪些檔案被標記紅色。

- 打開「git-demo.html」這個標紅色的資料夾,會找到出錯區段的標示。

- 做一個選擇,然後讓程式碼回到正常的樣子。

- 重新把程式碼提交到 staging area,重新進行 commit。
$ git add .
$ git commit --no-edit (直接接受預設訊息)

- 解決合併衝突之後,線圖長相會變成這樣:

- 推送合併後的主分支到遠端:
git push origin main