Page cover

Branch 入門

更新 Repositors


  1. 使用 Remote Repository 更新本地 Repository。

SHELL
git pull
circle-info

使用時機。

  1. 如果您正在與其他人協作完成一個項目並且他們對 Remote Repository 進行了更改。

  2. 如果您正在從事一個長期項目,而其他人經常對 Remote Repository 進行更改。

  3. 如果您和其他人對存儲庫中的同一文件進行了更改,則在嘗試合併更改時可能會遇到衝突

  1. 查看 commit 歷程檔案。

Branch


Git 的關鍵特性之一是它支援 Branch(分支),它允許開發人員同時處理 Repository 的多個版本。Git 分支是一條獨立的開發線,與主要程式不同。 Git 中的主 Branch 通常稱為 "master" 或 "main",對 Repository 的所有更改都在主 Branch 上進行。

開發人員可以創建新 Branch 來開發特定功能或修復 Bug。

  • Feature branch: 是一種特定類型的 Git Branch,用於開發新特性或功能。 當開發人員創建一個新的 Feature branch 時,通常以正在處理的功能命名它,然後在該分支上工作直到該功能完成。 功能分支與主分支隔離,這意味著在 Feature branch 上所做的任何更改都不會影響主 Branch,直到它們被 Merged(合併)。

  1. 複製主要的 Branch 並建立 Branch。

  1. 查看 Commit (提交) 歷史。 (僅顯示 Commit 標題和摘要)

circle-info

Git SHA-1 ID: 51be1c0

目前指向的 Branch (HEAD): Branch001

  1. 首次 Push Branch。

  1. 顯示當前 Branch 上最近 Commit 的詳細訊息。

circle-info

紅色標記: 刪除。 綠色標記: 新增。 黃色標記: 修改。

  1. 將 Branch Merge (合併) 到當前 Branch。(又稱 Merge commit)

circle-check

Merge conflict


當 Git 無法自動解決正在 Merge 在一起的兩個或多個分支之間的差異時,就會發生Merge conflict(合併衝突)。 例如:兩個或多個分支以不同方式對同一文件進行更改時,可能會發生這種情況,這樣 Git 無法確定應優先進行哪些更改。

當 Git 檢測到合併衝突時將會停止合併,並指出哪些文件存在 Conflict。 然後由使用者透過手動編輯衝突文件來解決 Conflict。

Merge tool

使用 Merge tool 可以解決 Command line 介面衝突的問題。(預設使用 Vim) 例如: P4Mergearrow-up-rightKDiff3arrow-up-right

  1. 安裝 Merge tool。

  1. 設定 Merge tool。

  1. 開啟 Merge tool。

P4Merge 畫面
Vim 畫面
  1. 執行因 Conflict 而暫停的 Merge。 ( (含 Commit,會開啟編輯器編輯 Merge Commit 資訊)

Pull Request


Pull Request(拉取請求)是一項功能,允許開發人員將更改的內容 Commit 到 Remote Repository 上,以供審查和集成到主要的程式碼中。

當開發者想為一個項目貢獻時,他們首先在 Git Repository 中創建一個新的 Branch,並在該 Branch 上進行修改。Pull Request 通常包括所做更改的摘要、任何相關註釋或文檔,以及代碼更改的差異或比較。

一旦貢獻的內容完成,開發人員就可以提交 Pull Request,要求 Repository 維護者 Pull Branch 檢視並將它們 Merge 到 Main branch 中。

Branch

Repository 的維護者可以審查更改,並決定是接受還是拒絕 Pull Request 。如果接受,更改將合併到 Main branch 中,如果拒絕,開發人員可以修改他們的更改並重新提交 Pull Request。

circle-check

  1. 點擊和發布 Pull Request。

點擊 Request Push
選擇 Branch
  1. 預覽和比較(Comparing)變更,最後確定建立 Pull Request。

預覽變更
  1. 編輯 Pull Request 資訊。

  • Reviewers(審閱者):是負責審閱 Pull Request,並向 Assignees 提供反饋。審閱者可以對提議的 Pull Request 進行修改或請求開發者進行其他更改。

  • Assignees(受讓者):是負責完成 Pull Request 和 Merge。

  1. 查看 Pull Request。

點擊 Pull Request 列表
查看 Pull Request 內容
  1. 審查 Pull Request,並提供意見。 (必須擁有權限)

circle-info

Require approval from specific reviewers before merging:增設 Repository 保護規則。例如:需要特定 Reviewers 的批准才能將 Merge 到Main branch 中。

Continuous integration has not been setup:此 Repository 沒有設置持續集成 (CI) 系統。 CI 系統自動執行構建、測試和部署程式碼更改的過程,這有助於及早發現錯誤並確保更改與項目的其餘部分順利集成。

This branch has no conflicts with the base branch:如果您看到此消息,則意味著,應該能夠自動 Merge,而無需解決任何 Conflicts。

  1. 審查結束,選擇 Merge 模式,進行 Merge。

選擇 Merge 模式
填寫 Merge 資訊
Merge 後
  1. 更新本地 Repository。

參考資料


Windows 上的 Git:如何設置合併工具? - 堆棧溢出arrow-up-right

Git and GitHub - The Game Changerarrow-up-right

Last updated

Was this helpful?