如何使用 git-bundle 保持开发同步?

2023-11-24

我需要使我的开发树在不同的计算机上保持同步,并且它们之间没有网络连接。

我们有一个中央 git 存储库,我通常在我的办公室计算机上使用我自己的克隆。有时我需要在另一台从未连接到办公网络的计算机上进行一些开发。没有一台计算机曾经连接到互联网。可以在同步期间在两台计算机上执行开发。

我已经阅读了帮助页面git 捆绑包,这似乎是最好的工具,但我不太确定如何建立一个好的工作流程。

你能给我一些建议或指点吗?


Bundles!

git bundle 的工作流程基本上与任何其他工作流程相同。这可能看起来不是很有帮助的建议,但它是:使用您通常使用的任何工作流程,并将“推/拉”替换为“在闪存驱动器上将包从这里带到那里,然后拉”。

手册页实际上有一个非常好的演练,尽管它更多的是一个单向示例。为了完整起见,这里有一个稍微修改过的版本,展示了如何双向移动信息:

# on hostA, the initial home of the repo
hostA$ git bundle create hostA.bundle --branches --tags

# transfer the bundle to hostB, and continue:
hostB$ git clone /path/to/hostA.bundle my-repo
# you now have a clone, complete with remote branches and tags
# just to make it a little more obvious, rename the remote:
hostB$ git remote rename origin hostA

# make some commits on hostB; time to transfer back to hostA
# use the known master branch of hostA as a basis
hostB$ git bundle create hostB.bundle ^hostA/master --branches --tags

# copy the bundle back over to hostA and continue:
hostA$ git remote add hostB /path/to/hostB.bundle
# fetch all the refs from the remote (creating remote branches like hostB/master)
hostA$ git fetch hostB
# pull from hostB's master, for example
hostA$ git pull

# make some commits on hostA; time to transfer to hostB
# again, use the known master branch as a basis
hostA$ git bundle create hostA.bundle ^hostB/master --branches --tags
# copy the bundle to hostB, **replacing** the original bundle
# update all the refs
hostB$ git fetch hostA

# and so on and so on

需要注意的关键是,您可以添加捆绑包作为遥控器,并与它交互,就像与任何其他遥控器一样。要更新该遥控器,只需放入一个新的捆绑包,替换之前的捆绑包即可。

我还采取了稍微不同的方法来选择基础。手册页使用标签,始终与传输到其他主机的最新参考保持同步。我只是使用了远程分支,它将引用最后传输的引用from另一台主机。效率有点低;你最终会捆绑比你需要的更多的东西,因为它落后了一步。但闪存驱动器很大,捆绑包很小,使用已有的参考文献而不必采取额外的步骤并小心标签,可以节省大量精力。

使捆绑包变得有点麻烦的一件事是您无法推送它们,也无法“重新设置”它们。如果您希望捆绑包基于新的基础,则必须重新创建它。如果您想要其中有新的提交,则必须重新创建它。这个麻烦引起了我的下一个建议......

存储在拇指驱动器上

老实说,除非您的存储库非常大,否则这可能很简单。将裸克隆放在拇指驱动器上,您可以从两台计算机上对其进行推送和拉取。将其视为网络连接。需要转移到中央仓库吗?插上电源!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 git-bundle 保持开发同步? 的相关文章

  • 如何将更改移出主分支

    基本问题 但这一直发生在我身上 进行更改working branch 切换到master git merge working branch git push cap deploy 到舞台 泡一杯新茶 然后我回来思考其他事情并开始做出一些改变
  • 如何正确使用“mvn release:prepare”?

    我尝试了这个命令 用dryrun在我的 Maven 项目上进行测试 mvn release clean release prepare DdryRun true DgenerateBackupPoms false Dtag solocal
  • Git:发送电子邮件而不提交

    我有一个项目 我做了更改 并想使用 git send email 功能将它们发送给另一个用户 我发现它可以通过发送补丁来工作 由git format patch每次提交 是否可以只发送diff的 我不想先提交 然后发送补丁 是否有gitfo
  • 致命:.git/info/refs 无效:这是一个 git 存储库吗?

    我有一个托管在 Assembla 上的 Git 存储库 我正在尝试执行以下操作 git push u origin master 我一遍又一遍地收到以下错误 fatal https url repo name git info refs n
  • git 别名中的 AWK 语句

    我正在尝试创建一个 git 别名来以特定格式打印日志中的所有拉取请求 但是 我在使用 AWK 删除双空格时遇到问题 这是使用以下命令的 git log 的输出 git log merges grep pull request pretty
  • 默认情况下 git merge -Xignore-space-change

    我该如何设置该选项ignore space change对于所有合并使用git config 我也许可以使用别名merge 但因为我希望该设置应用于git stash pop git stash apply git pull and git
  • 无法从 Sourcetree 拉取 Git 远程存储库

    我生成了 ssh 密钥并配置了我的 git 和 SourceTree 我可以 git pull 并从 Git bash 执行其他操作 注意 我在 bashrc 中添加了以下内容以使其正常工作 eval ssh agent ssh add 然
  • 在 Azure DevOps 项目之间移动存储库时保留拉取请求

    我在同一帐户内有两个 Azure DevOps 项目 我想将存储库从一个项目移动到另一个项目 这一页探索如何在具有完全保真历史记录的团队项目之间移动 git 存储库 https learn microsoft com en us azure
  • 使用终端时 Git 推送在总计后卡住了?

    我尝试将一些文件推送到Github 总大小只有22 2M 我不知道为什么它在总行之后卡住了 我读过推送到 Github 时 Git 推送挂起 https stackoverflow com questions 16906161 git pu
  • Netbeans 和 Git,.obj 文件被忽略

    我正在开发一个涉及 obj 文件的小型 git 项目 当我查看 项目选项卡 时 我发现它们被忽略了 但如果我查看我的 gitignore 我无法理解为什么 DepthPeeling nbproject private DepthPeelin
  • git 日志历史记录图,每次提交一行,彩色,带有日期

    我需要的格式如下 git log decorate graph oneline date order 但我也需要它 包含日期 短 具有相同的颜色 I tried git log decorate graph oneline date ord
  • 如何克隆特定的 Git 标签

    From git clone 1 手册页 http git scm com docs git clone branch还可以在结果存储库中的该提交处获取标签并分离 HEAD 我试过 git clone branch
  • 如何使用 AWS Lambda 安装 Git?

    我在代码提交存储库中有代码 我正在编写一个 lambda 函数来为代码提交存储库的每个签入 事件 构建代码 我无法安装 git 因此无法克隆存储库 我该怎么办呢 正如其他人提到的 在 lambda 上安装 git 要么非常困难 要么完全不可
  • Git 到 TFS 源代码管理迁移

    我想看看 TFS 如何为我的命令工作 所以我想将我们当前的 GIT 存储库移动到 TFS 数据库 我们使用 GIT 来获得普遍的分支支持 因此我想使用 TFS 2010 来解决该问题 现在的问题是 如何将 GIT 存储库导出到 TFS 显然
  • Git - 如何将整个目录恢复到特定提交(删除任何添加的文件)

    我想恢复 git 中的目录 恢复其中的所有文件 并删除自该提交以来添加的所有文件 进行结账似乎只能满足我的第一个要求 但不会删除任何文件 我想出了最简单的解决方案 git rm path to dir git checkout
  • 使当前提交成为 Git 存储库中唯一(初始)提交?

    我目前有一个本地 Git 存储库 我将其推送到 Github 存储库 本地存储库有约 10 次提交 Github 存储库是其同步副本 我想要做的是从本地 Git 存储库中删除所有版本历史记录 以便存储库的当前内容显示为唯一提交 因此存储库中
  • 显示 master 之前/之后有多少提交分支的别名

    新的 Bitbucket Branches 页面非常棒 它显示每个分支领先 落后于 master 的提交数量 是否有显示相同信息的 Git 别名 信息应显示 分店名称 上次更新是什么时候 其背后有多少提交 有多少提交领先于 master 看
  • 将更改从一个分支复制到另一个分支

    我有一个分支名为BranchA from master 我有一些改变BranchA 我不会合并来自BranchA to master 现在我创建了另一个分支master named BranchB 我如何复制更改BranchA to Bra
  • 具有单个子模块的多个存储库

    我已经找了一段时间但没有找到答案 也许我不知道该看什么 我们有一个主库 它本身就是一个存储库 我们称之为 Lib 它包含我们的大部分模块和子模块 我们还假设它的大小为 2GB 现在我们有很多项目 例如 ProjA ProjB ProjC 每
  • Git:如何修改服务器的提交?

    我已经在 EC2 上的 git 服务器上推送了一些提交 而不是在 github 上 如何修改 git 服务器上的这些提交 操作就像 删除提交 例如变基 更改提交消息 是否可以 非常感谢 你几乎可以通过用力推动来完成所有事情 将您的本地树更改

随机推荐

  • 如何在 XAML 中使用 C# 自定义子类?

    这是我的问题 我想在 MyWindow 中使用 SurfaceInkCanvas 的子类 我创建了一个这样的 C 类 namespace MyNamespace public class SubSurfaceInkCanvas Surfac
  • 在 10.9 上以编程方式启用对辅助设备的访问

    我想在 10 9 上以编程方式启用对辅助设备的访问 在 10 8 及更低版本中 我使用以下 Applescript 来启用对辅助设备的访问 tell application System Events if UI elements enab
  • 是否可以更改扩展WPF工具包的Busyindicator中的忙碌动画?

    是否可以更改扩展WPF工具包的Busyindicator中的忙碌动画 特别是 我想将其更改为 gif 动画 是的当然 您可以定义自己的自定义内容 文档 繁忙指示器自定义内容示例
  • 具有相同名称的控制器的 asp.net Web api 路由

    我正在将我的项目与另一个项目集成 Multiple types were found that match the controller named XXXXX This can happen if the route that servi
  • persp3d 图的格式

    我有以下 3d 图 With my data我用以下代码创建了它 library rugarch library rgl library fGarch fd lt as data frame modelfit which density c
  • 适用于 Firefox 的 WebDriver:浏览器启动时为空页面,挂起 2 分钟,重新启动,然后测试运行。为什么?

    我正在尝试更新我的 Java 测试套件以使用 Selenium 3 和 geckodriver 但是 我在执行测试命令时看到了这种非常奇怪的行为 Firefox 将打开一个空白页面 这样保持大约2分钟 它关闭然后立即重新启动 测试运行并通过
  • 我可以打开一个套接字并将其传递给 Linux 中的另一个进程吗

    在Linux中 我是否可以打开一个套接字并将该套接字传递给另一个进程 如果是 您能告诉我在哪里可以找到示例吗 谢谢 是的 你可以 使用sendmsg 使用 SCM RIGHTS 从一个进程到另一个进程 SCM RIGHTS 发送或接收一组
  • 在 ActionBarSherlock 中使用自定义布局构建 ActionMode

    我刚刚开始使用 ActionBarSherlock 来构建一些简单的应用程序 在我的第一个屏幕中 我有简单的列表 并添加了新的菜单项以将新项目添加到列表中 MenuItem newItem menu add New newItem setI
  • Entity Framework 4.1 - 刷新不是 Context 的成员

    我正在尝试使用 Context Refresh 方法恢复 Context 更改 但 Refresh 似乎不是 Context 的成员 我正在使用 Microsoft ADO NET Entity Framework 4 1 RC 版本 任何
  • C# CPU 和 GPU 温度

    我正在为系统性能创建个人监控程序 但在弄清楚 C 如何检索 CPU 和 GPU 温度信息时遇到问题 我已经让程序通过 PerformanceCounter 检索 CPU 负载和频率信息 以及各种其他信息 但我无法找到 CPU 温度的实例 对
  • python中urllib的响应时间

    我想在使用时获得响应时间urllib 我做了下面的代码 但它超过了响应时间 我可以利用时间吗urllib或者有其他方法吗 import urllib import datetime def main urllist http google
  • java中如何调用抽象类方法

    我想在我自己的类中调用抽象类的方法 抽象类是 public abstract class Call public Connection getEarliestConnection Connection earliest null retur
  • 在 Go 包中哪里放​​置测试的共享代码? [复制]

    这个问题在这里已经有答案了 我有一个包含多个文件的 Go 包 按照 Go 标准 我正在为包中的每个源文件创建一个关联的测试文件 就我而言 不同的测试使用相同的测试帮助功能 我不希望这些函数出现在包源文件中 因为它仅用于测试目的 我还想避免在
  • 编辑文本最大长度并在 texview 中显示长度

    我有一个编辑文本和一个文本视图 我想在编辑文本中设置最大长度 它显示在我的文本视图中 每次用户输入字符时 它都会减去字符数 例如 我将编辑文本的最大长度设置为 150 如果用户输入 150 个字符 他 她就无法再输入了 如何解决这个问题 设
  • 抓取亚马逊时被阻止(即使有标头、代理、延迟)[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我有一个Python代码来抓取亚马逊产品列表 我已经设置了代理和标头 我也有sleep 每次爬行之前 但是 我仍然无法获取数据 我收到的消息是 要讨论自动访问亚马逊数据 请联系
  • 如果两个不同网站上的会话名称相同,会发生什么情况?

    我有两个差异 项目在我的XAMPP说是Project1 and Project2 当我登录时Project1 我检查身份验证 如果成功则存储会话 会话名称是 SESSION username 上述过程与Project2 现在 为了防止直接访
  • ffmpeg退出状态-1094995529

    我正在开发一个应用程序 使打电话给ffprobe返回非正统的退出状态 1094995529对于 Windows 上的某些文件 这个退出状态是一致给出的 并且有一些小的讨论这个的 为什么给出这个值 它记录在哪里 我是否可以期望此状态在允许的退
  • document.getElementByID 外部还是内联?

    我一直在尝试使用document getElementByID从外部 JS 文件中提取 HTML 文件的信息 但它似乎不起作用 是否document getElementByID仅当它与 HTML 文件内联时才有效 或者它可以在外部 JS
  • 如何让 Windows 窗体设计器使用外部程序集中的资源?

    我在资源文件中有一些资源 在本例中为图像 我在 Windows 窗体项目中的控件上使用这些资源 Visual Studio 资源选择对话框没有很好地支持从资源文件中选择图像 除非它们位于特定位置 但您可以直接编辑设计器文件 这工作得很好 应
  • 如何使用 git-bundle 保持开发同步?

    我需要使我的开发树在不同的计算机上保持同步 并且它们之间没有网络连接 我们有一个中央 git 存储库 我通常在我的办公室计算机上使用我自己的克隆 有时我需要在另一台从未连接到办公网络的计算机上进行一些开发 没有一台计算机曾经连接到互联网 可