如何强制git始终使用master分支?

时间:2013-07-25 02:57:06

标签: git branch clone master

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

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

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

git branch
* (no branch)
master

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

1 个答案:

答案 0 :(得分:9)

这需要 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