问题标签 [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 投票
2 回答
626 浏览

git - 在 git 存储库中维护 AOSP 源代码的更好方法是什么

我是 git 新手。我们有超过 15 人从事同一个项目。
我可以知道,在 git 存储库中维护 AOSP 源代码的更好方法是什么。我正在尝试创建设置 Git 镜像或存储库。通常,人们将如何维护 AOSP 源代码。

0 投票
1 回答
396 浏览

git - 尝试镜像 Git 存储库时,我收到“不是 git 存储库”错误

我正在尝试这样做:

https://help.github.com/en/github/creating-cloning-and-archiving-repositories/duplicating-a-repository#mirroring-a-repository-in-another-location

克隆创建一个[repo].git文件夹,其中只有一个objects文件夹,当我尝试从创建的文件夹添加源 URL 时,我收到错误,因为文件夹中not a git repository没有文件夹。.git[repo].git

我错过了什么?


这些是我正在使用的命令

git clone --mirror [URL]

cd [repo folder]

git remote set-url --push origin [new URL]<-- 这是我收到错误的地方

git push origin --mirror

0 投票
0 回答
282 浏览

git - 如何在实时 git 存储库中分离链接对象(或如何从共享镜像中删除内部引用)

我需要采取哪些步骤来删除 git 镜像?

我已经克隆了 android 并下载了完整的镜像,以便能够使用git clone --reference(使用它的 wrapper repo init --mirror)更快地结帐,但是我的镜像包含部分代码,这些代码从未被引用过,并且这里浪费了太多的磁盘空间。例如,仅在 Linux 上构建时,我不需要为 MacOS 和 Windows 预构建二进制文件。

我看到了两条可能的前进道路,如果我应该把它分成两个单独的问题,请在评论中告诉我

选项 1:是将镜像与本地 git repo 不再使用镜像但将所有内容包含在其自己的目录中的所有结帐分离。git fsck我想也许可以为此使用一些命令行。

--dissociate创建克隆时我没有使用。现在我想将共享对象转换为非关联对象。

选项 2:查找镜像中实际使用的模块,并删除没有任何链接的模块。这可能是find,grepawk魔术的工作。

我还想在不破坏我的工作目录的情况下在上面运行,以防万一我忘记在某处提交一些更改。

0 投票
1 回答
555 浏览

git - 我可以从本地 git mirror clone 结帐分支吗

我已经使用--mirror标志克隆了我的仓库,如果是的话,我可以从中签出分支吗?如果没有,为什么?

git branch向我显示所有分支的列表,但git checkout branch-name给我错误提示:
fatal: This operation must be run in a work tree

0 投票
1 回答
55 浏览

git - 使用git时如何避免丢失远程信息?

我的目标是简化更新我的 git 镜像克隆的过程。

我有repo-A一个供应商提供的 git 存储库 我有一个 git 存储库repo-B,它位于我的本地 git

我能够克隆 repo-A 添加 repo-B 作为遥控器并推送到 repo-B。使用此命令

结果是repo-B包含与repo-A. 此时我可以从中获取新代码repo-A并将其推送到repo-B

问题是,如果我repo-B在另一台计算机上克隆。遥控器的配置丢失。

这意味着如果我执行 git remote -v 仅repo-B存在指向的链接。

是否可以进行配置repo-B,以便即使在新的克隆远程存储库链接存在之后?

我的目标是能够做到

我知道类似的行为可以通过

0 投票
1 回答
311 浏览

git - `git remote add --mirror=fetch` 会与 `git clone --mirror` 生成相同的仓库吗?

如果我想复制一个 repo,我使用它。

但是这个命令不需要 repo 存在于$DST. 通常没问题,但如果我想从多个进程同时发出 Git 命令,可能会导致一些竞争条件,因为在执行命令之前不存在可锁定的文件对象。

如果我只想跳过存在测试$DST,我想我可以

这会与完全相同的回购git clone --mirror $SRC $DST吗?

0 投票
0 回答
72 浏览

git - 无法从 git 镜像触发 Jenkins MultiBranch Pipeline 作业

我的 Jenkins 服务器未收到 git 服务器已更改内容的通知,因此未触发多分支管道作业。

配置如下:

  1. 主要的 git 服务器面向互联网并运行 gitolite。

  2. Jenkins 服务器位于防火墙后面。主 git 服务器无权访问 Jenkins 服务器,因此 git 挂钩将无法在此 git 服务器上工作。

  3. Jenkins 机器上存在一个 git 镜像,它充当 Jenkins 的只读缓存,以减少外部带宽使用。我将在其余描述中将其称为缓存。缓存正在使用 git-daemon 在内部发布。

  4. 缓存由 Jenkins 作业更新,该作业每 5 分钟运行一次,以便从主 git 服务器使用

  1. 现有的自由式项目只是轮询 git 缓存以在缓存中出现更改时触发它们自己。这工作正常

问题源于最近创建的 MultiBranch 管道作业。当缓存更改时,我无法确定触发这些作业的方法。我更喜欢使用 git 缓存中的 git 钩子,并尝试设置post-receive包含以下内容的钩子:

手动运行它post-receive会触发正确的 Jenkins 作业,包括 MultiBranch Pipeline 作业,因此其中的命令post-receive是正确的。但是当缓存更新时,该钩子不会运行。我可以使用其他任何钩子来触发构建吗?如果没有合适的钩子,有什么方法可以设置 MultiBranch Pipeline 作业来轮询缓存的更改?

0 投票
1 回答
46 浏览

git - 如何确保开发人员在存储库迁移后使用新的 git remote

关于迁移 git repo 的每个答案都说:

但是没有人说,之后该怎么办...

如何强制开发者使用newrepo

我带来的解决方案是:

  • oldrepo上的 git hook会将更改推送到newrepo(但如果开发人员继续向两者推送 - 似乎它在自找麻烦)
  • git hook 阻止提交并说“更改远程,我们现在正在使用newrepo

但也许有一些更好的解决方案?

0 投票
2 回答
151 浏览

git - 为什么我使用 git mirror 命令时会出错?

我无法镜像我的存储库。以下命令有效:

还有另一个我想要镜像的空存储库。该存储库由另一个人拥有,但我可以访问它,因为我可以在我的 GitHub 帐户中看到它。

当我执行以下命令时,出现错误:

存储库:

  1. https://github.com/my-username/my-repo(这是我的仓库,有我的用户名)
  2. https://github.com/their-username/their-repo(这是他们的仓库,有他们的用户名)

我正在尝试将 1 镜像到 2。我可以成功克隆两个存储库

0 投票
0 回答
58 浏览

git - 带有和不带有“--mirror”的“git clone”的不同提交次数

因此,在尝试将存储库从 bitbucket 迁移到 github 时,我遵循了一些步骤来执行以下操作:

1-git clone --mirror <bitbucket_repo>

2-cd在回购文件夹中

3-git push --mirror <github_repo>

然后为了确保我的所有提交都被复制,我在克隆的bitbucket_repo文件夹中运行了以下命令:

git rev-list --count --all

这给了我 25551 次提交

然后我克隆了新创建的 github 存储库(使用--mirror),然后运行相同的命令,我得到了 25557 次提交

现在,我知道新创建的 repo 中的提交数量是否更少。但我越来越多了。我认为这会git clone --mirror复制所有的裁判。

所以我克隆了没有该选项的 bitbucket存储库,--mirror并检查了提交的数量,它是 25557 次提交。

我在没有选项的情况下克隆了新创建的 github存储库,--mirror并检查了提交次数,它是 25557 次提交。

我在这里想念什么?

PS:值得注意的是,当我运行时git rev-list --all --count --no-merges,所有的提交号都匹配!