一位朋友坚持使用旧版本的 Git(我想他说的是 1.5?),他说不-b <branch>
支持该选项。我无法理解它,所以我真的希望有人能提供帮助:
不使用以下命令的等价物是什么-b
?
git clone -b $BRANCH $REPO
编辑:我最初要求git checkout
- 这不是我的意思。对不起!
一位朋友坚持使用旧版本的 Git(我想他说的是 1.5?),他说不-b <branch>
支持该选项。我无法理解它,所以我真的希望有人能提供帮助:
不使用以下命令的等价物是什么-b
?
git clone -b $BRANCH $REPO
编辑:我最初要求git checkout
- 这不是我的意思。对不起!
在较旧的 git 中,这需要两个步骤:
git branch $BRANCH $FROM_COMMIT
git checkout $BRANCH
注意我用过$FROM_COMMIT
,$REPO
在你的问题中看起来很奇怪和误导——你只能从提交创建分支,而不是从其他存储库。
编辑我的答案,因为问题已更改。阅读 git clone 的手册页,我们可以看到
-b
不要将新创建的 HEAD 指向克隆存储库的 HEAD 指向的分支,而是指向分支。在非裸存储库中,这是将被检出的分支。
为了使用较旧的 git 版本实现此效果,我们将使用:
git clone $REPO
git branch $BRANCH origin/$BRANCH
git checkout $BRANCH
这会将您的本地设置HEAD
为新创建$BRANCH
的指向origin/$BRANCH
(希望我没有弄错——我这里没有 git install 来测试……)
他应该能够做到:
git clone -n $REPO
cd <reponame>
git checkout -b $BRANCH origin/$BRANCH
我已经检查了这些选项对 v1.2.0 有效,所以如果他至少使用 1.5,这应该很好。
作为参考,clone 仅在 v1.6.5 中获得了-b
/选项。--branch
那将是:
git clone -n $REPO
git checkout -b $BRANCH origin/$BRANCH
(有关正确答案,请参阅Charles Bailey的答案)
如果您不从HEAD
repo 中获取默认分支,您需要获取您实际要跟踪的分支,然后创建自己的本地分支.
我会删除这个答案,但查尔斯贝利的评论很有趣:
克隆后立即获取是没有意义的,但您可能希望通过
-n
toclone
以避免对远程默认分支的不必要签出。
此外,您需要-b
选择checkout
.我刚刚检查过,
-b
被添加到git 之前的提交中checkout
。 如果您的朋友使用的是比这更旧的版本(这似乎极不可能),那么您需要更加具体。91dcdfd3
v1.0