问题标签 [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.
git - 在 git 存储库中维护 AOSP 源代码的更好方法是什么
我是 git 新手。我们有超过 15 人从事同一个项目。
我可以知道,在 git 存储库中维护 AOSP 源代码的更好方法是什么。我正在尝试创建设置 Git 镜像或存储库。通常,人们将如何维护 AOSP 源代码。
git - 尝试镜像 Git 存储库时,我收到“不是 git 存储库”错误
我正在尝试这样做:
克隆创建一个[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
git - 如何在实时 git 存储库中分离链接对象(或如何从共享镜像中删除内部引用)
我需要采取哪些步骤来删除 git 镜像?
我已经克隆了 android 并下载了完整的镜像,以便能够使用git clone --reference
(使用它的 wrapper repo init --mirror
)更快地结帐,但是我的镜像包含部分代码,这些代码从未被引用过,并且这里浪费了太多的磁盘空间。例如,仅在 Linux 上构建时,我不需要为 MacOS 和 Windows 预构建二进制文件。
我看到了两条可能的前进道路,如果我应该把它分成两个单独的问题,请在评论中告诉我
选项 1:是将镜像与本地 git repo 不再使用镜像但将所有内容包含在其自己的目录中的所有结帐分离。git fsck
我想也许可以为此使用一些命令行。
--dissociate
创建克隆时我没有使用。现在我想将共享对象转换为非关联对象。
选项 2:查找镜像中实际使用的模块,并删除没有任何链接的模块。这可能是find
,grep
和awk
魔术的工作。
我还想在不破坏我的工作目录的情况下在上面运行,以防万一我忘记在某处提交一些更改。
git - 我可以从本地 git mirror clone 结帐分支吗
我已经使用--mirror
标志克隆了我的仓库,如果是的话,我可以从中签出分支吗?如果没有,为什么?
git branch
向我显示所有分支的列表,但git checkout branch-name
给我错误提示:
fatal: This operation must be run in a work tree
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
,以便即使在新的克隆远程存储库链接存在之后?
我的目标是能够做到
我知道类似的行为可以通过
git - `git remote add --mirror=fetch` 会与 `git clone --mirror` 生成相同的仓库吗?
如果我想复制一个 repo,我使用它。
但是这个命令不需要 repo 存在于$DST
. 通常没问题,但如果我想从多个进程同时发出 Git 命令,可能会导致一些竞争条件,因为在执行命令之前不存在可锁定的文件对象。
如果我只想跳过存在测试$DST
,我想我可以
这会与完全相同的回购git clone --mirror $SRC $DST
吗?
git - 无法从 git 镜像触发 Jenkins MultiBranch Pipeline 作业
我的 Jenkins 服务器未收到 git 服务器已更改内容的通知,因此未触发多分支管道作业。
配置如下:
主要的 git 服务器面向互联网并运行 gitolite。
Jenkins 服务器位于防火墙后面。主 git 服务器无权访问 Jenkins 服务器,因此 git 挂钩将无法在此 git 服务器上工作。
Jenkins 机器上存在一个 git 镜像,它充当 Jenkins 的只读缓存,以减少外部带宽使用。我将在其余描述中将其称为缓存。缓存正在使用 git-daemon 在内部发布。
缓存由 Jenkins 作业更新,该作业每 5 分钟运行一次,以便从主 git 服务器使用
- 现有的自由式项目只是轮询 git 缓存以在缓存中出现更改时触发它们自己。这工作正常。
问题源于最近创建的 MultiBranch 管道作业。当缓存更改时,我无法确定触发这些作业的方法。我更喜欢使用 git 缓存中的 git 钩子,并尝试设置post-receive
包含以下内容的钩子:
手动运行它post-receive
会触发正确的 Jenkins 作业,包括 MultiBranch Pipeline 作业,因此其中的命令post-receive
是正确的。但是当缓存更新时,该钩子不会运行。我可以使用其他任何钩子来触发构建吗?如果没有合适的钩子,有什么方法可以设置 MultiBranch Pipeline 作业来轮询缓存的更改?
git - 如何确保开发人员在存储库迁移后使用新的 git remote
关于迁移 git repo 的每个答案都说:
但是没有人说,之后该怎么办...
如何强制开发者使用newrepo?
我带来的解决方案是:
- oldrepo上的 git hook会将更改推送到newrepo(但如果开发人员继续向两者推送 - 似乎它在自找麻烦)
- git hook 阻止提交并说“更改远程,我们现在正在使用newrepo
但也许有一些更好的解决方案?
git - 为什么我使用 git mirror 命令时会出错?
我无法镜像我的存储库。以下命令有效:
还有另一个我想要镜像的空存储库。该存储库由另一个人拥有,但我可以访问它,因为我可以在我的 GitHub 帐户中看到它。
当我执行以下命令时,出现错误:
存储库:
- https://github.com/my-username/my-repo(这是我的仓库,有我的用户名)
- https://github.com/their-username/their-repo(这是他们的仓库,有他们的用户名)
我正在尝试将 1 镜像到 2。我可以成功克隆两个存储库
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
,所有的提交号都匹配!