问题标签 [git-mirror]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
463 浏览

git - 在不按照特定模式修剪本地分支的情况下更新 git 镜像

我必须经常更新 Github 上 git 存储库的镜像。同时,我在foo-[1-9]+[0-9]*本地镜像上按照特定模式(比如说)创建了分支。这些分支是在给定标签处创建的,并包含内部补丁。

我想经常更新我的镜像并获得 Github 存储库的精确副本 + 包含内部补丁的分支。

在我创建镜像时,我们假设 Github 存储库的状态如下:

我们使用标签v0.1的软件,并且出于某些原因我们创建了补丁来修复构建或软件。本地存储库的状态现在是:

与此同时,新的提交、分支出现在 Github 上,开发分支被合并然后删除。Github 存储库的状态现在是:

起初我克隆了镜像。

git clone --mirror ${url_local_repo}

然后我将 Github 的存储库添加为远程。

git remote add --mirror=fetch github ${url_github_repo}

最后,我从 github 获取更改。

foo-1已删除,但我想保留它。我尝试使用 glob 筛选提取,但它不起作用。

你有什么建议?

0 投票
1 回答
48 浏览

git - Git 从一台服务器迁移到另一台服务器,保持 Git 镜像完好无损

我在远程服务器-R 上有一个 Git 存储库。server-R 和 server-C 之间有一个 Git 镜像。还有 10 台其他服务器可以从 Git 主存储库 Server-R 克隆代码。

Server-R 很快就会报废,我需要将整个 Git 主存储库从 server-R 移动到新的 server-X。我对 Git 的了解非常有限。我需要做些什么才能将 Git 主存储库从 server-R 迁移到 server-X,保持所有历史记录签入、Git 镜像完整且所有 10 个服务器必须能够从新的 server-X git 推送和拉取。

0 投票
1 回答
618 浏览

git - 在 VSTS / Azure DevOps 中推送时将定义镜像存储库构建到外部 git 存储库

如标题所示,我在 VSTS/Azure DevOps 中进行构建步骤时遇到问题,我想在推送到 ie 时更新外部 git 存储库。我的 realease 或 master 分支。我已经从市场上尝试了几个插件,但似乎没有一个能满足我的需求。我有几个先决条件:

  • 我的外部 git 在端口 33 后面
  • 我的外部 git 只接受 SSH 密钥作为身份验证,因此我需要将 SSH 私钥存储在某个地方以便能够推送到外部源。

由于内置镜像功能,我也尝试过 Gitlab,但不幸的是,它不接受端口 33,只有 22 和其他标准端口:-(

非常感谢您!

0 投票
1 回答
960 浏览

git - 如何打开由 git clone --mirror 生成的存储库

我得到了一个 git 存储库,它是通过运行命令 git clone --mirror 生成的(后来被压缩了)。我想知道如何以一种可以开始使用它进行编程的方式打开项目。

包根如下所示:

0 投票
0 回答
307 浏览

git - Git 镜像在目标存储库上创建了不需要的 PR 引用

我有一个定期 git 同步脚本,它从比特桶云运行到我们的本地 git 存储库。

简而言之,它执行以下操作:

此序列克隆了源存储库,清理了所有拉取请求引用并推送到目标存储库。它工作了几个月没有问题,但今天我收到以下错误:

远程:您正在尝试更新为

Bitbucket 的拉取请求功能。Bitbucket 管理这些 refs

自动,并且它们可能不会被用户更新。偏僻的:

拒绝的 refs:remote: refs/pull-requests/1/from

远程:refs/pull-requests/1/merge 远程:![偏僻的

拒绝] refs/pull-requests/1/from (pre-receive hook denied) !

[remote denied] refs/pull-requests/1/merge(预接收钩子

拒绝

)

在目标存储库上,我可以看到这些奇怪的引用,但在 UI 中没有拉取请求。我怀疑目标存储库中的某些内容已损坏,但我无法清除这些引用

该操作产生以下错误:

远程:您正在尝试更新为

Bitbucket 的拉取请求功能。Bitbucket 管理这些 refs

自动,并且它们可能不会被用户更新。远程:拒绝

参考:远程:参考/pull-requests/1/来自远程:

refs/pull-requests/1/merge

我有两个问题:)

1)什么会导致目标存储库中的这种损坏?

2)有没有办法摆脱目标上的这些引用?

0 投票
1 回答
191 浏览

git - 如何从源代码更新到 Github 镜像存储库?

按照以下说明操作后,我能够在我的 GitHub 帐户中创建镜像。但在那之后如何从源存储库中获取更新。

https://help.github.com/en/articles/duplicating-a-repository#mirroring-a-repository

打开 Git Bash。

创建存储库的裸克隆。

$ git clone --bare https://github.com/exampleuser/old-repository.git 镜像推送到新仓库。

$ cd old-repository.git $ git push --mirror https://github.com/exampleuser/new-repository.git删除您在步骤 1 中创建的临时本地存储库。

$ cd .. $ rm -rf old-repository.git

0 投票
1 回答
392 浏览

git - 从 git repo 复制单个分支并使其独立

我有一个 git repo,可以说“MyRepo”,具有以下结构、branch1、branch2、标签等。我想创建一个新的 git repo,“EasyStart”,它的代码和历史只有 branch2,我不想要MyRepo 中的任何其他内容,例如 branch1、标签等。而且我不希望与 MyRepo 有任何其他链接或连接。因此,一旦设置了 EasyStart 存储库,它就只有分支 1 的历史记录和代码,因此在 EasyStart 上所做的任何更新/更改都不会反映在 MyRepo 中,反之亦然。我如何实现这一目标?

0 投票
0 回答
256 浏览

git - 构建服务器 git 镜像

设想

我们已经(并且仍然存在)与 Bitbucket 的连接问题,我们的下载速度非常慢(并且我们有相当大的存储库)并且使用 Team City 不时喜欢擦除它下载的 git 存储库,最多可能需要 5 个小时才能再次提取整个 repo。不知道如何从 Team city 关闭这个 repo 擦除想法,也不知道这个速度问题会持续多久,我们决定创建一个 Team City 可以连接到的本地 bitbucket 镜像,以获取整个 repo(这需要 5 分钟而不是 5 小时)。

解决方案

我所做的是创建一个裸 Git 存储库。

C:\My_bare_repo> git init --bare

然后我通过将裸存储库添加为新的远程存储库将本地开发存储库推送到这个新的裸存储库(因为我不想进行需要 5 小时才能完成的克隆)。

之后,我将我的 bitbucket url 作为远程 url 添加到我的裸存储库中。

C:\My_bare_repo> git 远程添加源https://bitbucket.org/my_repo.git

然后我做了一个远程更新。

C:\My_bare_repo> git 远程更新源

然后我编写了这个将被执行的 PowerShell 脚本(通过 Windows 任务计划程序每 5 分钟执行一次):

结果

它不会进行完全同步(除了推送 Team City 创建的任何新标签外,我不希望它与 Bitbucket 同步)。它似乎正在工作,因为它成功地将标签传播到 Bitbucket,并确保 Bitbucket 存储库的最新副本位于可供 Team City 查看的裸存储库中。

问题

不过我的问题是,是否有任何这样的解决方案比我想出的更好用?

另外,我不喜欢我必须删除分支并重新创建它们以确保它们在源分支所在的存储库中的相同位置。有没有办法在一个裸仓库中快速转发它们(因为缺乏更好的术语)?

0 投票
1 回答
553 浏览

git - git-push combined with refspec from mirror repositories deletes other branches?

There are two remote repositories as follows.

  • original.git: The original bare repository.
  • mirror.git: A mirror repository cloned with git clone --mirror original.git.

Pushing refs from the mirror to the original remote using git push --mirror works as expected. However, when refspec (e.g. branch name) is combined with git-push, Git tries to delete all the other branches except for the specified one, from both original and mirror repositories.

  1. Why does Git try to delete other branches?
  2. How can I prevent from deleting remote branches in cases where receive.denyDeletes is not set in remote repositories? (I just deleted remote branches by mistake.)

Note: I'm using git v2.18.0 now, and as far as I know, git push --mirror <repo> <refsepc> is not allowed in older versions such as git v1.7.1.

0 投票
1 回答
151 浏览

git - 使用本地更改镜像 Git 存储库

我想将存储库 A 镜像到存储库 B 并在 B 上进行一些更改,同时同步对 B 中的 A 所做的所有更改。最好的方法是什么?

目前,我使用 git-mirror 镜像存储库 A 并推送到 B。但是当我从 A 获取新更改并将它们推送到 B 时,我在 B(新分支)上的所有工作都被删除。我总是得到 A 的副本。

在此先感谢您的帮助。