如何克隆一个 Git Flow 风格的 Git 代码库?

6

我正在使用git-flow分支模型的git仓库。我已将其推送到中央仓库。新加入项目的开发人员如何克隆它?

克隆仓库只会得到master分支。新开发人员如何获取develop分支以及他选择的一些功能分支?


5
仅克隆仓库并不只会得到主分支,这是错误的。clone是完全克隆。使用git branch -a命令可以显示所有分支。 - 1615903
由于 git branch 命令只显示了 master 分支,我以为它只克隆了主分支。我的错。 - Sathish Manohar
2个回答

7

正如user1615903 已经指出的,一个简单的

git clone <remote repo url>

这条命令会从远程存储库中获取所有分支,包括 masterdevelop。你可以通过使用 git branch -rgit branch -a 命令在本地克隆中查看所有远程分支。

根据Git clone doc文档:

将存储库克隆到新创建的目录中,为克隆存储库中的每个分支创建远程跟踪分支(可使用 git branch -r 查看),并创建和检出一个从克隆存储库当前活动分支分叉出来的初始分支。

如果您想要在本地对这些分支进行操作,可以使用以下命令创建它们:

git branch <local branch name> <remote branch>

或者像这样用一个命令创建并检出分支

git checkout -b <local branch name> <remote branch>

1
或者如果只有一个仓库,git checkout <branch name> 就可以完成工作。请参阅文档如果找不到<分支>,但确实存在一个跟踪分支在恰好一个远程(称其为<remote>)中具有匹配的名称,则视为等效于: $ git checkout -b <branch> --track <remote>/<branch> - 1615903
但是,你创建(本地副本)分支的位置不重要吗? - Saran
@Saran 我不确定你的意思是什么。 - user456814
@Cupcake 如果你执行 git branch <本地分支名称> <远程分支>,它将从当前所在的某个提交中分支出来(例如,如果你在克隆命令之后没有做任何事情,那么它就是基于主/HEAD),对吗?这样远程分支和本地分支就不会相同了。是这样吗? - Saran

0

git clone 命令会创建并检出一个初始分支,该分支是从克隆的仓库当前活动分支(默认为 master)派生而来。因此,请将您的中央仓库当前活动分支更改为 develop

cd /path/to/central/repo
git symbolic-ref HEAD refs/heads/develop

现在,当开发人员克隆时,他们的初始分支将是develop而不是master

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接