获取从远程分支到本地孤立分支的完整提交历史记录

时间:2019-04-17 08:24:27

标签: git github git-branch

最近我想克隆一个大型存储库,所以最终克隆了一个分支。

git clone --single-branch dev git@github.com:xyz/abc.git

此存储库中没有其他分支,即舞台和母版。

现在我的本地克隆只有dev分支。

我的问题:现在如何结帐到stage分支?

我尝试清除孤立分支git checkout --orphan stage,但是无法从远程阶段分支获取完整的提交历史记录

3 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

git fetch <remote> <remote_branch>:<local_branch>
git checkout <local_branch>

示例:

git fetch origin stage:stage
git checkout stage

这将从远程分支stage下载参考/对象,并创建一个具有完整历史记录的本地分支stage

答案 1 :(得分:1)

git clone --single-branch dev git@github.com:xyz/abc.git应该已经退出,并显示错误fatal: repository 'dev' does not exist。也许您错过了-b之前的--branchdev

在您的情况下,git checkout --orphan stage将根据最近一次提交的stage创建一个孤立分支dev。这不是你想要的。

stage的历史记录尚未完全获取。要获取stage并创建本地stage

git fetch origin stage:stage

结帐stage

git checkout stage

这样,本地stage可能没有上游分支。稍后,您可以运行git push origin -u stage:stage

如果您打算从foo创建本地孤立分支stage,则可以运行:

git fetch origin stage --depth 1
git checkout --orphan foo FETCH_HEAD
git commit

答案 2 :(得分:1)

  • 将1个或所有远程分支提取到本地计算机中。
  • 切换到所需分支
  • 从远程存储库中提取最近的更改。

    git fetch --all // All branch fetch
    
    git fetch <remote> <remote_branch_name> // Single branch fetch
    
    git checkout <remote_branch_name>
    
    git pull <remote> <branch_name>
    

注意:您可以查看任何分支的提交历史,而无需使用切换到该特定分支

   git log <branch_name>