最近我想克隆一个大型存储库,所以最终克隆了一个分支。
git clone --single-branch dev git@github.com:xyz/abc.git
此存储库中没有其他分支,即舞台和母版。
现在我的本地克隆只有dev
分支。
我的问题:现在如何结帐到stage
分支?
我尝试清除孤立分支git checkout --orphan stage
,但是无法从远程阶段分支获取完整的提交历史记录
答案 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
之前的--branch
或dev
?
在您的情况下,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)
从远程存储库中提取最近的更改。
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>