问题标签 [git-bundle]

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 回答
1428 浏览

git - 带有 LFS 的 Git 捆绑包

我需要捆绑一个我们一直在使用 git-lfs 但遇到问题的 git repo。

它会很好地捆绑在一起,但是当我来克隆它时,会发生此错误

正在下载 .../Dll's/DotNetZip.dll (458 KB) 下载对象时出错:.../Dll's/DotNetZip.dll (7dd20a2):涂抹错误:下载时出错 .../Dll's/DotNetZip.dll (7dd20a2291b05323bba04be4ae656d7635ae5e68a5a6fa2b9f86e27841846a31):批处理请求:缺少协议:“C:/...bundleName.bundle.git/info/lfs”

错误记录到 C:/.../.git\lfs\logs\20180831T093319.3979074.log git lfs logs last用于查看日志。错误:外部过滤器“git-lfs 过滤器进程”失败致命:../Dll's/DotNetZip.dll:涂抹过滤器 lfs 失败警告:克隆成功,但检出失败。您可以使用“git status”检查已签出的内容,然后使用“git checkout -f HEAD”重试签出

我似乎找不到任何关于 lfs 应该如何与 git bundle 一起使用的文档。我的 lfs 文件真正需要的只是将最新版本存储在捆绑包中,但似乎也找不到它可能在哪里。

0 投票
0 回答
135 浏览

git - 捆绑 git 存储库而不克隆它

如何捆绑一个 git 项目而不每次都克隆它?现在我总是在下面命令。

我想在一个命令中执行此操作,例如:

0 投票
1 回答
1209 浏览

git - 本地中央 git 存储库的离线同步

我们有两个不同的团队,每个团队都在自己的位置,使用 git,每个位置都有一个参考存储库。每个位置都可以访问企业网络,但两个网络不能直接连接(相信我,我们问过):我们只能交换文件。我们希望能够定期同步这两个位置,以便可以通过各自的参考存储库共享工作。

要求:

  • 必须允许双向交换。
  • 我们需要能够同时在双方的某些分支上工作,或者至少从发生这种情况的情况中恢复,即使我们希望大部分时间都在单独的分支上工作。这意味着可能需要一个集成步骤来处理不同的工作。
  • 大多数跟踪必须自动发生,以便最大限度地减少人工干预和操作错误的风险(并不是说它们会致命,但最好避免相互指责:信任是有限的)。特别是,在 git-bundle 手册页中使用的单个移动标签示例是可笑的,因为它甚至无法扩展到有限数量的分支(我们有几十个)。
  • 参考存储库只能通过远程推/拉和必要的轻管理操作进行操作,这既是因为它们在 IT 控制之下,也是因为我们希望它们始终保持一致,即首先完成集成,然后才进行更改另一方与集成一起在本地参考存储库上发布。
  • 我们不能每次都发送整个存储库(甚至是 tar-gzip):它不仅本身有点大,而且所有连续发送的包都保存在记录中,因为这是合同承诺的一部分,并且在其中有 N 个存储库副本很快就会变得不可持续。
  • 所有必要的信息都必须存储在本地参考存储库中,以便任何开发人员都可以执行同步步骤,而无需依赖存储在特定开发人员的本地存储库中的信息。
  • 使用 git,而不是反对它,至少尽可能多地这样做。工作流程越怪异,就越有可能因为 git 的变化或其他意外情况而中断。

非要求:

  • 处理两个以上断开连接的站点。两个已经足够具有挑战性了。
  • 每晚处理。交换将被手动触发和处理。
  • 命令的数量或复杂性有限。如果需要许多复杂的命令,就这样吧,我们总是可以在脚本中隐藏这种复杂性。
  • 跨越离线同步。这总是意味着麻烦,就像流一样。因此,我们可以假设离线同步操作是完全有序的,无论它们的方向如何,必要时轮流进行。
  • 分公司管理细节等。那是我们内部的业务。
0 投票
1 回答
63 浏览

git - 带有符号引用的 git 包

我正在尝试与异地开发团队分享我们的 git 存储库。我们没有“主”分支。我们有 A/master、B/master 和 C/master。我的 pub repo 中有一个象征性的 ref

HEAD -> refs/heads/B/master

当我创建捆绑包git bundle create my.bundle --remotes --tags时,我最终得到了两个对 refs/remotes/origin/B/master 的引用,这会导致git clone --mirror my.bundle失败。有没有办法忽略符号参考?

0 投票
0 回答
19 浏览

git - 将未推送的提交移动到另一台没有远程存储库的机器上的存储库

在两台不同的机器(家庭和办公室)上克隆(最新)相同的远程存储库
- 在家庭机器上,我添加了 3 个提交(未推送到远程)
- 为存储库创建了一个捆绑文件,git bundle create fizz-buzz-app.bundle --all
git log如下所示:

在 Office 机器上,我有相同的存储库,但没有 3 次提交
git log的存储库如下所示:

我已将捆绑文件从 USB 复制到 Office 机器上的本地目录
我如何将“丢失”的提交从捆绑文件带到现有的存储库?

我知道我可以使用 将它克隆到新的存储库git clone fizz-buzz-app.bundle,但想知道是否有可能将 3 个新提交从捆绑文件“拉”到现有存储库。

0 投票
1 回答
103 浏览

git - 如何捆绑分支

我是 git 新手,并完成了以下设置:

  1. 服务器S上有一个存储库。
  2. 我将它克隆到我的机器A并在分支中添加了一些更改。
  3. 我刚刚将复制品从 2 复制到 USB 驱动器。然后走到与SA没有连接的机器B
  4. 然后我使用这个复制的 repro 对分支进行了一些更改(在机器B上)。
  5. 我阅读了有关 git 的更多信息 - 因为必须有一些方法来移动我的提交 - 并找到了git bundle

现在我想将我的提交从B移到A。然后从AS,但我认为这不会是问题。

我尝试关注此文本并尝试致电

,其中 L 是AB上最后一次提交的标识符, H 是B中最后一次提交的标识符。

这给出了:

我显然不知道该怎么做才对。我想这可能与我在第 3 步中没有使用捆绑包或 L 和 H 在分支上有关,我需要提供更多信息。

这里我知道:

但我不确定这意味着什么。当我输入 git show-ref 时,它会给出一个简短的列表,其中包括我的提交 H 和 L。

0 投票
1 回答
69 浏览

git - GIT 捆绑包的安全性如何

我在两台独立的无互联网机器上有两个相同的存储库。
代码是敏感的,不能暴露给外界(甚至不是它的差异)。

仅包含增量更新的 git 捆绑文件有多安全?
我知道,如果他没有最初的基地,他就无法从中拉出来——git bundle verify将会失败。
使用文本编辑器打开文件不会显示任何代码段。
有没有办法让第三方打开并查看其中的代码?
它有多安全?

0 投票
0 回答
118 浏览

git - 为什么 git 无法从当前工作目录中的 git-bundle 获取

试试这个:像这样创建一个 git-bundle:

然后尝试直接取回同一个 git repo,但是到一个单独的分支,如下所示:

看到它像这样失败:

但是将它移到 /tmp/trash1.bundle 中,然后像这样运行它:

并且它毫无问题地继续创建some_branch.1分支(正如预期的那样,它恰好指向与 相同的提交some_branch,因为它是相同的存储库。

那么为什么 git-fetch 不允许在前面使用标准文件语法“./”来指定一个包呢?为什么捆绑文件必须是完全限定的?

0 投票
1 回答
672 浏览

git - Git拉包文件给出'致命:找不到远程参考头'

我发布了一个自我回答,因为我知道我的一些同事很快就会在谷歌上搜索。我们有时需要分发以 master 为基线的捆绑文件,因此仅包含创建时明确包含的特定分支。例如,分销商会:

问题是,在收到捆绑文件后,这样做git pull ../file.gitbundle会给出:

我已经通过以下方式验证了捆绑文件应该适用:

git show fd9801b79b56f5dd55ab1e6500f16daf正确显示所需的提交,而不是 give fatal: ambiguous argument '[commit-hash]': unknown revision or path not in the working tree,这表明我没有必要的基线提交。

0 投票
1 回答
66 浏览

git - 如何在 JGit 中执行“git bundle create --all”?

是否可以使用 JGit 捆绑存储库?

我正在尝试执行与此 git 命令等效的操作: