我有一个名为'skeleton'的本地Git存储库,用于存储项目框架 . 它有一些分支,用于不同类型的项目:
casey@agave [~/Projects/skeleton] git branch
* master
rails
c
c++
如果我想查看一个新项目的主分支,我可以做
casey@agave [~/Projects] git clone skeleton new
Initialized empty Git repository in /Users/casey/Projects/new/.git/
一切都是我想要的 . 具体来说,新的主分支指向骨架主分支,我可以推拉以移动对基本项目设置的更改 .
什么没有得到它所以我只拉动我想要的分支,例如 rails
分支,然后新的存储库有一个 master
分支,默认情况下推送到骨架存储库的 rails
分支 .
这有什么好办法吗?或者,也许这不是Git想要我构建事物的方式,我当然对此持开放态度 . 也许我应该有多个存储库,Ruby on Rails骨架存储库跟踪主骨架存储库?任何克隆Ruby on Rails骨架存储库的单个项目 .
14 回答
注意: git1.7.10 (April 2012) 实际上允许你 clone only one branch :
你可以在t5500-fetch-pack.sh看到它:
Tobu comments:
从Git 1 . 9 . 0(2014年2月)开始,浅克隆支持数据传输(推/拉),因此该选项现在更有用 .
请点击“Is git clone --depth 1 (shallow clone) more useful than it makes out?”了解更多 .
"Undoing"浅层克隆详见“Convert shallow clone to full clone”(git 1.8.3)
如Chris评论:
一种方法是执行以下操作 .
branch_name
是您选择的分支,"/your/folder"是该分支的目标文件夹 . 确实,这将使其他分支机构为您提供来回合并的机会 . 现在,从Git 1.7.10开始,您现在可以执行此操作使用Git版本1.7.3.1(在Windows上),这是我的工作(
$BRANCH
是我要签出的分支的名称,$REMOTE_REPO
是我要克隆的远程存储库的URL):这种方法的优点是随后的
git pull
(或git fetch
)调用也将只下载所请求的分支 .你可以尝试冗长的方式:
这样做是:
创建并初始化一个空的Git存储库 .
将原始存储库添加为远程调用源 .
仅从远程调用的原点获取所需的分支 .
创建并签出一个新分支,该分支设置为跟踪刚刚克隆的源分支 .
希望这将是你所追求的 .
您可以使用以下命令执行此操作:
从git-clone man page:
--single-branch 是您在克隆期间的朋友记得使用
--branch <branch name>
或者只克隆远程主要HEAD(默认为master)永远记得按Ctrl F5来读取新的来源,而不是缓存中的那个:-)(我很久没知道这个选项了 . )
只需输入URL和分支名称即可 .
可以分两步完成
克隆存储库
git clone <http url>
检查您想要的分支
git checkout $BranchName
要克隆Git的一个分支,你没有公钥,使用这个:
克隆完成后,我必须输入
git submodule update --init --recursive
才能下载所有子模块打开cmd .
cd folder_name
(输入克隆分支的路径)只需一个命令:
只克隆一个分支 . 这是最简单的方法:
要克隆特定分支,您可以执行以下操作:
git clone --branch yourBranchName git@yourRepository.git
打开Git Bash shell .
在文件系统中创建要签出的目录 .
$ mkdir Feature_develop_branch
将目录更改为 Feature_develop_branch 文件夹 .
$ cd Feature_develop_branch
使用外部克隆URL克隆存储库 .
$ git clone https://someurl.repositoryName.git
克隆后,将目录更改为创建的repositoryName .
$ cd / repositoryName
查看分支机构 .
$ git checkout
<Branch Name>