如何比较.git目录,以便我可以删除一个

时间:2013-08-29 17:23:41

标签: git

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

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

(git branch -av; git stash show -v)| md5sum

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

1 个答案:

答案 0 :(得分:0)

这很简单。

假设你有来自同一个共享仓库的repos cloneA cloneB

  1. cloneA 中添加另一个克隆作为新的遥控器:

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

  2. 然后从中获取:

    $ git fetch cloneB

  3. 这会将仅存在于 cloneB 中的所有分支复制到带有所有相应提交和对象的 cloneA ,因此技术上_cloneA现在可以被丢弃不要删除远程引用,因为这样会更难找到复制的分支。

    这会复制任何stashes。但是,如果您还需要复制藏匿处,可以查看this方法。