获取从远程分支到本地孤立分支的完整提交历史
Get full commit history from a remote branch to a local orphan branch
我最近想克隆一个大型存储库,所以我最终克隆了一个分支。
git clone --single-branch dev git@github.com:xyz/abc.git
这个 repo 几乎没有其他分支,即 stage 和 master。
现在我的本地克隆只有 dev
分支。
我的问题:我现在如何结帐到 stage
分行?
我已尝试清除一个孤立分支 git checkout --orphan stage
,但无法从远程阶段分支
获取完整的提交历史记录
你可以这样做:
git fetch <remote> <remote_branch>:<local_branch>
git checkout <local_branch>
示例:
git fetch origin stage:stage
git checkout stage
这将从远程分支 stage
下载 refs/objects 并创建一个名为 stage
的具有完整历史记录的本地分支。
git clone --single-branch dev git@github.com:xyz/abc.git
应该已经退出并显示 fatal: repository 'dev' does not exist
错误。也许您在 dev
之前错过了 -b
或 --branch
?
在您的情况下,git checkout --orphan stage
将从 dev
的最新提交创建一个孤立分支 stage
。这不是你想要的。
stage
的历史记录尚未完全获取。获取 stage
并创建本地 stage
:
git fetch origin stage:stage
结帐stage
:
git checkout stage
这样,本地stage
可能没有上游分支。稍后你可以 运行 git push origin -u stage:stage
.
如果您打算从 stage
创建本地孤立分支 foo
,您可以 运行:
git fetch origin stage --depth 1
git checkout --orphan foo FETCH_HEAD
git commit
- 将 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>
我最近想克隆一个大型存储库,所以我最终克隆了一个分支。
git clone --single-branch dev git@github.com:xyz/abc.git
这个 repo 几乎没有其他分支,即 stage 和 master。
现在我的本地克隆只有 dev
分支。
我的问题:我现在如何结帐到 stage
分行?
我已尝试清除一个孤立分支 git checkout --orphan stage
,但无法从远程阶段分支
你可以这样做:
git fetch <remote> <remote_branch>:<local_branch>
git checkout <local_branch>
示例:
git fetch origin stage:stage
git checkout stage
这将从远程分支 stage
下载 refs/objects 并创建一个名为 stage
的具有完整历史记录的本地分支。
git clone --single-branch dev git@github.com:xyz/abc.git
应该已经退出并显示 fatal: repository 'dev' does not exist
错误。也许您在 dev
之前错过了 -b
或 --branch
?
在您的情况下,git checkout --orphan stage
将从 dev
的最新提交创建一个孤立分支 stage
。这不是你想要的。
stage
的历史记录尚未完全获取。获取 stage
并创建本地 stage
:
git fetch origin stage:stage
结帐stage
:
git checkout stage
这样,本地stage
可能没有上游分支。稍后你可以 运行 git push origin -u stage:stage
.
如果您打算从 stage
创建本地孤立分支 foo
,您可以 运行:
git fetch origin stage --depth 1
git checkout --orphan foo FETCH_HEAD
git commit
- 将 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>