我正在尝试设置一个本地Git存储库,它使用来自另一个存储库的特定分支作为起始模板(可能会对模板进行更改,但从不 - 或者至少几乎从不 - 推送到模板)和我我对两种方法之间的差异感到困惑:
如果我
git clone --origin framework --branch template <repo_url> <repo_directory> --single-branch
cd <repo_directory>
git remote set-url --push framework DISABLED
我有一个remotes/framework/HEAD
远程分支,而如果我改为
mkdir <repo_directory>
cd <repo_directory>
git init
git remote add framework <repo_url>
git pull framework template:template
除了remotes/framework/HEAD
的缺席之外,其他一切都是(或者至少看起来)相同。
什么是remotes/framework/HEAD
,为什么它出现在一种方法而不是另一种方法中?
我收集防止推送到远程仓库的唯一方法是使用
之类的东西git remote set-url --push framework DISABLED
但如果有另一种方法(上述两种方法除外)配置符合我目标的本地回购,我想听听它。
答案 0 :(得分:0)
它是遥控器默认分支的标记。例如,在GitHub中,它是您在打开项目时看到的分支,您可以在设置对话框中更改它。
我认为只有当你拉动所有分支(以及它存在时)才能得到它。在第二个例子中,你只需要一个分支。
当-m
遥控器时,可以使用git remote add
指定远程云端,您可以使用git remote set-head
进行修改。
顺便说一句:如果您在没有设置遥控器的情况下从URL中提取,那么您不必担心会使其无法推送。
BTW2:使用最新的git,当您执行克隆到本地版本的克隆时,也可以使用--reference repository --dissociate
。这样就无需下载所有文件(但仍然可以复制它们,因此如果要删除源代码,则无需担心。)