3

我有一些 Xcode 项目正在尝试使用 git 从 GitHub 克隆,它也有外部子模块。每当我尝试克隆时,它都会将这些外部子模块以及项目中的每个文件夹放在“(无分支)”而不是 master 上。这就是我在终端中所做的:

git clone git@github.com:******.git
cd ******
git submodule update --init
cd External/******
git submodule update --init
cd External/******
git submodule update --init

如果我 cd 进入任何文件夹并执行 git 分支,我会得到:

git branch
* (no branch)
master

有没有办法强制 git clone 在任何地方使用 master 分支?

4

1 回答 1

16

这需要git 1.8.2或更高版本(2013 年 3 月)

这取决于这些子模块是如何在以下文件中声明的.gitmodules

参见“ git submodule tracking latest

这将允许您遵循主分支。
使用以下内容更新您的电流.gitmodules

git config -f .gitmodules submodule.<path>.branch master
git submodule update --remote --recursive

请注意,子模块仍然不会在任何分支上。简单地说,他们的 SHA1 将是origin/master.
你仍然需要checkout master为他们中的每一个。

git submodule foreach --recursive git checkout master
于 2013-07-25T05:50:25.903 回答