所以我创建了一个git存储库,在我的工作副本上设置了一些标签和遥控器,然后将存储库推送到我的服务器
git push --mirror my.remote.repository
Run Code Online (Sandbox Code Playgroud)
据说,用git --mirror推送也会推动我设置的遥控器.
但是,如果我这样做
git clone my.remote.repository
Run Code Online (Sandbox Code Playgroud)
我没有看到我最初创建的遥控器.我是否需要特殊语法来克隆遥控器?镜像实际上不发送遥控器吗?我哪里做错了?
编辑:也许我的工作流程很奇怪:这就是我想要完成的事情.repo最初是我无法控制的另一个项目(A)的克隆,我将远程重命名为'upstream'.我已经建立了一个新的"主"分支,并打算对我的工作副本进行更改并进行部署.我偶尔会从原始存储库(A)中提取更新(切换到原始的,未修改的分支并从上游拉出).但是,我正在与其他人合作,所有人都应该能够做到这一点.目标是使用初始存储库(A)中的错误修复更新主分支,并将更改提交到"主"分支.因此,当开发人员克隆存储库时,他们应该继承上游分支,以便他们可以实际执行此操作.简而言之,我正在尝试使用"上游"分支从不同的项目中获取更新.我没有使用子模块来执行此操作,因为"上游"分支实际上负责存储库中95%的文件,如果没有上游文件,整个项目就毫无意义.
(这不是典型的工作流程,但无论如何我都会尝试回答直接问题......)
git push --mirror确实会将您的远程跟踪分支推送到远程上的相同名称。但是,当您克隆时,默认情况下您只能获取 下的引用refs/heads,这些引用映射到 下的远程跟踪分支refs/remotes/origin/。您也可以克隆git clone --mirror以从远程获取远程跟踪分支,但该选项意味着--bare.
如果您想要一个具有工作树的存储库,其分支是从远程镜像的,您可以随时更改配置选项中的 refspecremote.origin.fetch以将每个引用获取到相同的名称,但我再次怀疑真正的问题是您正在使用一个非常不寻常的工作流程。
顺便说一句,即使您使用其中一种技术来更改所获取的引用的映射,这也不会克隆遥控器本身,这些遥控器是在存储库的 git config 中定义的 -git clone不会克隆来自 的任何内容.git/config,这被认为是包含私人信息。
| 归档时间: |
|
| 查看次数: |
1638 次 |
| 最近记录: |