如何验证git exile的工作原理?

时间:2018-04-10 15:22:37

标签: git

我尝试使用git exile。这是我通常采取的一系列行动:

  1. 将巨大的文件复制到存储库(通过它将"旧的"文件的内容替换为"新的"内容)。
  2. git add(我想我们不会将二进制文件复制到" staging区域" /" index"因为存储库是"放逐"而是那个"暂存区"将只获得一个指向"巨大"内容的链接。)
  3. git exile push(我不知道它的作用。)
  4. git commit
  5. 我的期望是,在这个行动之后,"巨大的"文件将被复制到驱动器,这些文件的原始内容(在本地存储库中)将被驱动器上的位置链接替换。但是,出于某种原因,我无法明确验证它。我的存储库中仍然有大量的二进制文件(至少它是我用lsdu命令看到的,或者当我用较少的文件打开文件时。)

    也许我的解释是错误的。也许"链接"仅存在于"临时区域"而不是在"工作树" /"文件系统"。

    我基本上想要的是两种状态之间的切换:(1)一些文件包含原始的巨大内容,(2)文件包含复制到驱动器的巨大内容的链接。

    换句话说,当我克隆(或拉动)存储库时,我会看到"链接"在一些文件中(而不是实际的二进制内容)。然后我用巨大的二进制内容"替换这些链接。做上面描述的命令序列(" git add" +" git exile push" +" git commit"),结果,我仍然拥有巨大的命令我的工作树中的二进制文件。 但是现在我想将本地存储库推送到远程存储库并且我不想推送二进制文件,我想推送新的链接。我拉链接,我想推送链接。我怎样才能实现它?

1 个答案:

答案 0 :(得分:1)

链接1:关于git-exile github的文档可能很有趣:

https://github.com/patstam/git-exile

链接2:查看该帖子的机制:

What is the difference between "git push" and "git exile push"?

要澄清一些问题:

替换实际上发生在git add time(参见链接2)

使用git exile push时:

  

当你向git添加文件时,git-exile将真实内容存储在.git / exile文件夹中,并使用那里的数据在需要时用真实文件内容静默替换引用。

当你推:

  

这将查找当前目录和所有子目录中的流出文件,并将与当前版本对应的对象推送到远程存储库。

你似乎有不止一个问题,可能参考了git exile的整体逻辑/理解。我建议看一下机制的2个链接:) 但是,我希望这有点帮助!