从 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