[英]Change default branch to checkout from master to develop
在一个新的存储库上,我经常发现自己已经对master分支进行了更改,当然我应该从develop分支开始。
当然,在开始进行更改之前,我应该先创建一个功能分支,在这种情况下,我会发现自己在开发中而不是开发中。
但是git中是否还有设置可以更改默认的clone / checkout分支进行开发?
是的,有一种方法可以做到。
当您运行git clone <url>
您的Git会调用其他Git。 另一个Git有一个存储库; 您的Git会为其存储库制作一个新副本。
如果您提供了-b branch
参数传送给 git clone
, 使用 Git 的结束与克隆过程git checkout branch
。 因此,这是最简单的方法,但是,如果您忘记运行git checkout
,那么您可能也会忘记-b
参数。
如果您不提供-b branch
,那么您的Git将从另一个 Git获得建议的最佳分支 。 然后,您的Git将其用于最后的git checkout
步骤。 因此,如果您有权访问其他 Git存储库,则只需去那里更改其建议的分支。
其他Git将建议的分支由该存储库中已签出/当前的分支确定。 由于大多数服务器存储库都是“裸机”(没有工作树),因此您实际上无法在其中签出分支,但它们仍具有当前分支。 您可以使用git symbolic-ref
更新它:
server$ cd repo
server$ git symbolic-ref HEAD refs/heads/develop
如果您无法登录服务器,则服务器可能会或可能不会提供某种方式来执行此操作。
git签出的默认分支是由远程仓库的HEAD
决定的,该HEAD
几乎总是指向master
。 我不知道会更改clone
的默认值的本地设置。 (您可以通过警告来近似表示这种行为;请参见下文。)由于git通常不能假定任何给定名称的分支(包括master
)都将存在于任意远程中,所以我不希望它具有这样的功能; 它依靠遥控器告诉它默认分支是什么(同样,通过遥控器的HEAD
)。
在许多分支模型中,默认情况下签出master
并不是对开发人员最方便的事情,但这是一个根深蒂固的约定。 因此,我的建议是适应您的工作流程习惯,而不要尝试相反的做法。
但是有什么选择呢?
对于给定的clone
命令,可以使用--branch
选项选择最初签出的内容
git clone --branch develop http://some.server/repo.git
在此基础上,您可以定义别名以使用--branch
选项进行克隆。 (但是,如果别名在没有分支的仓库中使用,别名将失败。)
对于您可以控制的回购协议,您可以将HEAD
更改为指向您选择的分支,但是出于某些原因,我确实建议您不要这样做。 首先,如果共享仓库,可能会造成混乱。 (类似地,它可能会使构建工具的设置复杂化,尽管这实际上并不难处理。)但是我不愿意这样做的最大原因是,您在使用自己的存储库时会养成习惯,而这些习惯不会转化为使用他人的回购协议。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.