Git 如何在dev分支上工作,但将master保留为默认克隆分支

Git 如何在dev分支上工作,但将master保留为默认克隆分支,git,git-branch,git-clone,Git,Git Branch,Git Clone,我有一个用于开发某些功能的本地存储库。 我想与大家分享这一特性,同时继续开发它。 为此,我想设立一个发展分支机构 我希望允许人们在默认情况下克隆我的本地回购协议并接收主分支,而不是在我将回购协议签出到开发分支时明确要求它 i、 e.允许用户“git clone/sapir/repo/.git”并接收主分支 尽管此时/sapir/repo实际上已在开发分支上签出 有没有一种方法可以在不为自己保存存储库的第二份副本的情况下实现这一点?简短的回答是否定的。但您设置了一个奇怪的情况: 你有一些天真的用

我有一个用于开发某些功能的本地存储库。 我想与大家分享这一特性,同时继续开发它。 为此,我想设立一个发展分支机构

我希望允许人们在默认情况下克隆我的本地回购协议并接收主分支,而不是在我将回购协议签出到开发分支时明确要求它

i、 e.允许用户“git clone/sapir/repo/.git”并接收主分支 尽管此时/sapir/repo实际上已在开发分支上签出


有没有一种方法可以在不为自己保存存储库的第二份副本的情况下实现这一点?

简短的回答是否定的。但您设置了一个奇怪的情况:

  • 你有一些天真的用户,他们不知道当他们运行
    git clone
    时,他们正在选择让git创建哪个分支。1如果没有明确的选择,他们会选择让git创建git推荐的分支

  • 您是(或正在尝试至少是)一个老练的用户,了解
    git clone
    的工作原理,因此,如果运行
    git clone
    的人既不使用
    -n
    (避免创建分支)也不使用
    -b
    (选择创建内容),那么,运行
    git clone
    的人将从您自己的git中获得推荐。您自己的Git推荐工作树中当前的分支,或者,如果此Git存储库是空的,则推荐当前的分支:也就是说,存储在
    HEAD
    中的任何名称

但是,作为一个老练的用户,您应该已经知道Git:

  • 可以在本地使用硬链接,或者使用
    --reference
    和替代机制共享对象存储
  • 应该有一个裸存储库来接收
    git push
    指令
  • 因此,不需要任何活动的工作树,这样您就可以在这个裸存储库的
    中存储任何您喜欢的内容

意识到这些,您只需创建一个裸存储库,然后在本地克隆它和/或使用
--reference
在克隆中工作,而不是一开始就问这个问题。您在本地签出的分支对克隆repo的人的默认分支没有影响。我想您可以将/sapir/repo视为远程分支。在这种情况下,我直接在远程分支上工作,所以我称之为本地repo,我的坏消息。有没有一种方法可以让远程服务器在dev分支上签出,但让默认克隆分支成为master,这就是问题所在