0

私はよく、複数のコンピューターで同じプロジェクトに取り組んでいます。しばらくしてから、プロジェクト ファイルが同期され、各コンピューターで最新の変更が反映されていることを確認する必要があります。したがって、内容が同じ A と B の 2 つのディレクトリになりますが、内容が同じであっても、.git ファイルは 2 つのディレクトリ間で一致しません。B を削除できるように、1 つのディレクトリ (A) に B のすべてが含まれていることを確認する必要があります。

したがって、.git/* ファイルが比較されなくても、ディレクトリ A/.git に B/.git に含まれるすべての情報が含まれていることを知る方法が必要です。これが私が思いついたものです:

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

これを A と B の両方で実行すると、両側に同じブランチとスタッシュがある場合、同じ結果が得られるはずです。両方のリポジトリに同じ情報があることを確認するには、これで十分ですか? それとも、他に何か不足していますか?

4

1 に答える 1

0

それはかなり簡単です。

同じ共有レポから最初に複製されたレポcloneAcloneBがあるとします。

  1. cloneA内から、他のクローンを新しいリモートとして追加します。

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

  2. 次に、そこから取得します。

    $ git fetch cloneB

これにより、 cloneBにのみ存在するすべてのブランチが、対応するすべてのコミットとオブジェクトとともにcloneAにコピーされるため、技術的には _cloneA を破棄できるようになります。ただし、リモート参照を削除しないでください。コピーされたブランチを見つけるのがはるかに難しくなります。

ただし、これは隠し場所をコピーしません。ただし、スタッシュもコピーする必要がある場合は、このアプローチを検討できます。

于 2013-08-29T21:33:25.067 に答える