從 Git 倉庫中提取特定提交

Ashok Chapagai 2023年1月30日
  1. 使用 git fetch 獲取更改然後使用提交雜湊合併
  2. 將特定提交的程式碼拉取到新分支
  3. git pull 與提交雜湊一起使用
從 Git 倉庫中提取特定提交

有時你可能希望將特定提交從遠端倉庫拉到本地倉庫,並且有幾種方法可以實現。下面,你可以找到幾種從 Git 倉庫中提取特定提交的方法。

使用 git fetch 獲取更改然後使用提交雜湊合併

使用它,你可以從遠端倉庫中獲取更改,然後找到要合併到原生代碼庫的提交雜湊。你可以參考以下步驟:

  • 獲取 repo 的最新變化

    ``bash
    git fetch remote <branch_name>

    `git fetch` 命令從指定的 `<branch_name>` 中獲取變化。
    
  • 檢視 Git 日誌以抓取合併的提交雜湊值
    git log
    

    上述命令列出了所有的提交,如提交雜湊值、提交作者、提交日期和提交資訊。
    你可以用 --oneline 標誌 git log --oneline,在一行中獲取所有的提交和它們各自的雜湊值。

  • 使用提交雜湊合併所需的提交

    ``bash
    git merge <commit_hash

    最後,你想合併的提交可以通過 `git merge`命令使用提交雜湊來完成。
    

使用上述方法,直到合併提交的所有提交也被合併。但是,要合併來自單個提交的更改,你可以使用 git cherry-pick 作為:

git cherry-pick <commit_hash>

將特定提交的程式碼拉取到新分支

如果你想從提交中提取更改並簽出到新分支,你可以使用單個命令來實現。

git checkout -b <new_branch_name> <commit_hash>

我們可以使用上面提到的 git log 命令檢索提交雜湊。

git pull 與提交雜湊一起使用

此步驟類似於第一種方法中提到的直到第二步。完成上述操作後,第二步(執行 git fetchgit log 以檢視提交雜湊後)。

git pull origin <commit_hash>

使用上述命令,你可以從提到的提交的雜湊中提取所有更改。

在這裡,git pull 結合了 git fetchgit merge

作者: Ashok Chapagai
Ashok Chapagai avatar Ashok Chapagai avatar

Ashok is an avid learner and senior software engineer with a keen interest in cyber security. He loves articulating his experience with words to wider audience.

LinkedIn GitHub