0

我经常在多台计算机上处​​理同一个项目。一段时间后,我需要确保项目文件已同步并与每台计算机上的最新更改保持同步。所以我最终得到了两个目录 A 和 B,它们具有相同的内容,但是 .git 文件在两个目录之间不匹配,即使它们的内容相同。我需要确保一个目录 (A) 以 B 的所有内容结束,这样我就可以删除 B。

所以我需要一种方法来知道目录 A/.git 包含 B/.git 包含的所有信息,即使 .git/* 文件不比较。这是我想出的:

(git 分支 -av;git stash 显示 -v)|md5sum

如果我在 A 和 B 中运行它,如果双方都有相同的分支和存储,我应该得到相同的结果。这足以确保两个存储库具有相同的信息吗?还是我错过了其他东西?

4

1 回答 1

0

这很简单。

假设您有 repos cloneAcloneB最初是从同一个共享 repo 克隆的。

  1. cloneA中将另一个克隆添加为新的远程:

    $ git remote add cloneB file:///path/to/cloneB/.git

  2. 然后从中获取:

    $ git fetch cloneB

这会将仅存在于cloneB中的所有分支复制到cloneA以及所有相应的提交和对象,因此技术上 _cloneA 现在可以被丢弃。但是不要删除远程引用,因为这会使定位复制的分支变得更加困难。

但是,这不会复制任何存储。但是,如果您还需要复制存储,您可以研究这种方法。

于 2013-08-29T21:33:25.067 回答