“git push --mirror”足以备份我的存储库吗?

2024-01-08

我是一名独立开发人员,在本地 Git 存储库中工作。对于备份,我想将该存储库的精确副本发送到另一台服务器。

这样做就足够了吗?

git push --mirror

我这么问是因为有时我可以在 Git 告诉我“一切都是最新的”之前运行这个命令两到三次,所以显然它不是一个精确的镜像。似乎正在重新推送跟踪分支...?

$ git push --mirror
Counting objects: 42, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (30/30), done.
Writing objects: 100% (30/30), 5.09 KiB, done.
Total 30 (delta 17), reused 0 (delta 0)
To ssh://my/repo/url
   c094a10..0eedc92  mybranch -> mybranch
$ git push --mirror
Total 0 (delta 0), reused 0 (delta 0)
To ssh://my/repo/url
   c094a10..0eedc92  origin/mybranch -> origin/mybranch
$ git push --mirror
Everything up-to-date

发生了什么事,这是一个好的策略吗?

编辑:我不喜欢使用类似的东西git bundle or .tar.bz2档案,因为我希望备份成为可访问的工作副本。由于我的备份服务器已连接到网络并且始终处于开启状态,因此这是我在路上访问存储库的好方法。


您看到第二次推送某些内容的原因是--mirror推动力比你预期的要多一点。除了本地分支之外,它还会推送远程分支,因为镜像意味着一切。所以当你正常推动时(或用--mirror), mybranch被推动并且origin/mybranch已更新以反映原点的新状态。当你用--mirror, origin/mybranch也被推了。

这会导致你看到奇怪的情况,并且当你从遥控器拉出时,也会导致更严重的奇怪情况;你会得到名为origin/origin/mybranch等等,所以通常最好使用--mirror一次性复制,然后使用普通推送(也许与--all) 正常使用。

要始终推送所有分支和标签,您可以更新.git/config像这样:

[remote "origin"]
  url = ...
  fetch = ...
  push = +refs/heads/*
  push = +refs/tags/*

这将使普通推送类似于镜像,只不过它不会删除源中不存在的分支或进行非快进更新。

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

“git push --mirror”足以备份我的存储库吗? 的相关文章

随机推荐

  • Spring JUnit4 手动/自动装配困境

    我遇到了一个问题 这个问题只能用我对 Spring 的 IoC 容器设施和上下文设置的根本缺乏理解来解释 所以我想要求对此进行澄清 仅供参考 我维护的一个应用程序具有以下技术堆栈 Java 1 6 春季2 5 6 RichFaces 3 3
  • 如何在 Yii2 中手动在数据库中创建用户?

    我将用户从 csv 文件导入到数据库中 在 csv 文件中 我有一些用户名和密码字符串 那么如何手动创建新用户呢 据我了解我需要getPasswordHash and generateAuthKey 最后一个生成随机字符串 但可能我丢失了一
  • 如何将.fs文件编译为.exe?

    我没有找到将简单文件 fs 编译为 exe 的方法 我尝试了这个例子 但它不起作用 在文件 dolphin fs 中 let longBeaked Delphinus capensis let shortBeaked Delphinus d
  • XHTML 网站抓取指南

    我对 VBA 和 HTML XHTML 非常陌生 但是通过在线研究和这里其他优秀成员的帮助 我已经成功编写了一段代码来提取我想要的数据 我很难识别我想要的元素的 ID 因为它是 XHTML 格式的 所以我认为这是我搞砸的地方 网站 这是我想
  • 弱属性需要大量开销?

    在大约 100 000 次 setDelegate 调用后 我的 iOS 应用程序在 setDelegate 上停滞了大约 15 秒 将委托属性从弱更改为分配可以解决该问题 知道为什么弱属性有如此多的开销并导致应用程序停止运行吗 我怀疑弱引
  • 如何检查字节数组是否是有效图像?

    我知道没有用于检查的 Net 函数 但是在使用字节数组之前是否有一种算法或简单有效的方法来检查字节是否是有效图像 我需要这个 因为我要向不断监听客户端的服务器发送不同的命令 其中一个命令是获取服务器计算机的屏幕截图 您可以尝试从字节数组生成
  • ExecuteNonQuery() 始终返回 -1

    我正在使用存储过程在表中插入一些值 CREATE PROCEDURE dbo Sp InsertValue Val1 as nvarchar 50 Val2 as nvarchar 50 as BEGIN IF NOT EXISTS SEL
  • 如何向 Meteor.users 集合添加字段

    我想要存储在客户端用户文档中的 Facebook accessToken 继流星文档 http docs meteor com meteor users 我应该添加一个新的发布调用 在 server js 中 Meteor publish
  • Curl 发送 .tar.gz 文件时出现错误 56“从对等方接收数据时失败”

    我对这个 CURL 调用有问题 curl X POST data binary File01 tar gz http website intra prova it gore orgac PINGU TEST lots Test 017 co
  • Ruby Guard 问题 - “请安装 sqlite3 适配器” -railstutorial.org

    我正在跟随Ruby on Rails 教程 http ruby railstutorial org 并且在测试部分有些困惑 特别是 3 6 2 使用 Guard 进行自动化测试 http ruby railstutorial org cha
  • 从 Ubuntu 中删除 chromedriver

    我想更新按照此说明安装的 chromedriver 版本https christopher su 2015 selenium chromedriver ubuntu https christopher su 2015 selenium ch
  • 使用 jersey ServletContainer 时从 web.xml 获取配置数据

    我正在使用 jersey 在 Tomcat 中创建一个 web 应用程序 我还没有创建 Servlet 我只是使用 jersey ServletContainer 和一些 Resource 类 我的 web xml
  • 在 mac bash 终端中使用 shell 命令时出现“非法字节序列”错误

    尝试在 MacOS bash shell 中从大文件中提取非英文字符时出现 非法字节序列 错误 这是我尝试使用的脚本 sed s a z 0 9 A Z g lt 1 gt Abhineet extract1 txt sed s 1 g
  • 将不同的集合绑定到数据网格

    我有一些收藏 例如 List 1 and List 2 两者都是List 我需要做什么 1 将它们插入Datagrid 2 添加新项目Lists 例如 表单上有一些按钮 我单击它 新项目将添加到第一个列表中 Datagrid现在看起来像这样
  • 如何在 C 中将结构存储和检索到共享内存区域

    对于uni分配 我需要创建一个最多包含10个文件名的循环列表 然后将它们存储在共享内存区域中 以便2个子进程可以读取 写入该列表 使用信号量来控制访问 问题是 我是一个完全的 C 新手 我感到失落和绝望 因为它完全超出了我的能力范围 我需要
  • 如何查询 Google BigQuery 表并根据列的子集删除重复项?

    我有一个查询连接两个 google 表并生成一个包含 6 列的表 a b c d e f 接下来 我将该表移至 google 存储桶 然后将该 google 存储桶下载到一堆 CSV 最后我将这些 CSv 插入到postgres数据库表有2
  • 如何判断用户是否点击了浏览器后退按钮或刷新按钮

    我需要确定用户是否单击浏览器后退按钮或刷新按钮 当他单击后退或刷新按钮时 我需要将页面重定向到错误页面 这个怎么做 我需要在 ASP net 页面的 javascript 中执行此操作 首先 如果用户使用 后退 或出于某种原因必须刷新页面
  • 如何使用Spring正确关闭执行器服务?

    我有一个命令行应用程序 它使用由 java 组成的 Spring 管理的 beanExecutorService创建于 ExecutorService service Executors newFixedThreadPool 4 现在 我希
  • ObjectAnimator导致ImageView消失

    我正在制作动画ImageView在 Android API 19 中 使用ObjectAnimator 我一切正常 在 Galaxy S3 上显示完美 但在我的 Nexus 7 2013 WiFi 型号 上却出现问题 目标是使用以下命令让图
  • “git push --mirror”足以备份我的存储库吗?

    我是一名独立开发人员 在本地 Git 存储库中工作 对于备份 我想将该存储库的精确副本发送到另一台服务器 这样做就足够了吗 git push mirror 我这么问是因为有时我可以在 Git 告诉我 一切都是最新的 之前运行这个命令两到三次