1

我需要将一些二进制文件添加到 Git 存储库一段时间。(实际上它们是 ODT 文档,我想将它们连续转换为可版本化的 LaTeX 源文件。我希望它们在 repo 中,因为我在多台计算机上工作并与其他人共享一些工作)。但是一旦我不再需要这些二进制文件,我希望将它们删除。可能这不是一个真正的问题,但为了保持一致性,我更愿意将它们从回购中清除。

所以我的想法是创建一个新分支并将二进制文件添加到其中,因此所有这些文件的提交都在这个单一分支的上下文中。

如果我用 删除这个分支git branch -D,这些文件是否会消失,或者它们是否仍会作为其历史记录的一部分存在于存储库中?

4

3 回答 3

1

在一段时间内,它们仍将成为隐藏历史的一部分:

当分支将被删除时,包含您的文件的提交将变得无法访问,即查看历史记录时无法访问。它们在对象存储中,但没有 git 巫术就无法查看它们。此外,它们不会在 fetch/pull/clone 操作中被检索到。

这些提交将在一些git gc运行后被清除,这将删除超过 2 周的无法访问的提交。

于 2013-02-25T15:35:50.140 回答
1

repo 中仍然会有一段时间。

首先,即使分支被删除,提交仍然存在并在您的 HEAD reflog 中引用(这是 HEAD 最近所在的位置)。你可以在.git/logs/HEAD.
通常,reflog 会在 30 天后过期(从 HEAD 或任何分支)无法访问的引用。您可以强制 reflog 过期git reflog expire

然后,一旦您的 reflog 不引用这些提交,它们将不会被删除,直到调用git pruneor 。将自动修剪两周前创建的每个悬空(意味着它们没有在任何地方引用)提交/blob。git gcgit gc


无论如何,在您的特定情况下,如果您不希望将这些文档放在 repo 中,这可能是一个很好的迹象,表明您不应该首先将它们放在这里,并且 git 不是您问题的解决方案。

像 dropbox/google drive/etc 这样的解决方案。我想会更合适。

于 2013-02-25T15:43:34.813 回答
0

我尝试使用原始问题的第一条评论,我想分享我的测试结果。

如果您将 OpenOffice 文档保存为“平面 XML”,您将获得可在 Git 中使用的可区分文件格式。虽然这可行,但它远非完美,因为有相当多的开销不是“内容”,而是配置信息,如时间戳、视口信息以及可见按钮或其状态之类的东西。很多这也进入了提交。这是将一段插入空文档的区别:

diff --git a/Test2.fodt b/Test2.fodt
index 02a528a..bec4f67 100644
--- a/Test2.fodt
+++ b/Test2.fodt
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text">
- <office:meta><meta:creation-date>2013-02-26T08:36:00</meta:creation-date><meta:generator>LibreOffice/3.6$Linux_x86 LibreOffice_project/360m1$Build-2</meta:generator><meta:document-statistic meta:table-count="0" meta:image-count="0" meta:object-count="0" meta:page-count="1" meta:paragraph-count="0" meta:word-count="0" meta:character-count="0" meta:non-whitespace-character-count="0"/></office:meta>
+ <office:meta><meta:creation-date>2013-02-26T08:36:00</meta:creation-date><meta:generator>LibreOffice/3.6$Linux_x86 LibreOffice_project/360m1$Build-2</meta:generator><meta:document-statistic meta:table-count="0" meta:image-count="0" meta:object-count="0" meta:page-count="1" meta:paragraph-count="1" meta:word-count="2" meta:character-count="13" meta:non-whitespace-character-count="12"/><dc:date>2013-02-26T08:37:13</dc:date><meta:editing-duration>P0D</meta:editing-duration><meta:editing-cycles>1</meta:editing-cycles></office:meta>
  <office:settings>
   <config:config-item-set config:name="ooo:view-settings">
    <config:config-item config:name="ViewAreaTop" config:type="int">0</config:config-item>
@@ -14,7 +14,7 @@
     <config:config-item-map-entry>
      <config:config-item config:name="ViewId" config:type="string">view2</config:config-item>
      <config:config-item config:name="ViewLeft" config:type="int">6158</config:config-item>
-     <config:config-item config:name="ViewTop" config:type="int">2501</config:config-item>
+     <config:config-item config:name="ViewTop" config:type="int">2988</config:config-item>
      <config:config-item config:name="VisibleLeft" config:type="int">0</config:config-item>
      <config:config-item config:name="VisibleTop" config:type="int">0</config:config-item>
      <config:config-item config:name="VisibleRight" config:type="int">29314</config:config-item>
@@ -205,6 +205,12 @@
   <text:linenumbering-configuration text:number-lines="false" text:offset="0.499cm" style:num-format="1" text:number-position="left" text:increment="5"/>
  </office:styles>
  <office:automatic-styles>
+  <style:style style:name="P1" style:family="paragraph" style:parent-style-name="Standard">
+   <style:text-properties officeooo:paragraph-rsid="0004a3d7"/>
+  </style:style>
+  <style:style style:name="T1" style:family="text">
+   <style:text-properties officeooo:rsid="0004a3d7"/>
+  </style:style>
   <style:page-layout style:name="pm1">
    <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin="2cm" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:footnote-max-height="0cm">
     <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
@@ -224,7 +230,8 @@
     <text:sequence-decl text:display-outline-level="0" text:name="Text"/>
     <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
    </text:sequence-decls>
-   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="P1"><text:span text:style-name="T1">One paragraph</text:span></text:p>
+   <text:p text:style-name="P1"><text:span text:style-name="T1"/></text:p>
   </office:text>
  </office:body>
 </office:document>
\ No newline at end of file
于 2013-02-26T07:39:11.817 回答