1

少し問題があり、git をだます必要があります。

基本的に、インターネットが非常に遅い場所にいる別のプログラマーと共有するレポがあります。このレポには多くの画像があり、めったに変更されません。とにかく、私はこのレポを他のプログラマーと共有し、彼はそれをダウンロードしました。その後、何かが起こり、私はレポを閉じなければなりませんでした。私はレポでいくつかの小さなコード変更を行い、再度アップロードしました。他のプログラマーが作業できるようにしたいと考えています。現在、彼はそのレポのコピーを持っていますが、一部のファイルは同期していませんが、画像は同じです (レポサイズの 95% は画像です)。彼のローカル コピーには git シンボルがありません。リモートリポジトリの古いバージョンを持っているだけで、リポジトリ全体を再度ダウンロードする必要がなく、コードの変更のみを取得できると思わせるにはどうすればよいでしょうか?

明確にするために:

新しいリポジトリは古いリポジトリと同じではなく、コードベースも同じですが、コミット オブジェクトやハッシュは同じではありません。

4

2 に答える 2

2

内容が同じであれば、必要なのはコミット オブジェクトだけです。簡単だ。

mkdir for-my-buddy
git rev-list --all \
        | git pack-objects for-my-buddy/pack

彼にそのディレクトリの内容を電子メールで送信し、それらを .git/objects/pack にドロップしてもらい、 git branch -m / git tag -f 彼の参照をあなたのものにドロップしてもらいます。

編集:次のことを行うことで、安全かつ安価に実験できます

git clone -s path/to/real/repo path/to/playground/repo

遊び場ですべての作業を行います。満足したら、作業を進めます。

于 2013-11-08T02:22:08.577 に答える
0

最も簡単な方法は、ディレクトリを彼のディレクトリと再同期することです。git リポジトリは単なるファイルの集まりです。状態を保持するランタイム ロジックはありません。

リポジトリが技術的に完全に異なり、古いリポジトリの履歴データを気にしない場合は、.gitディレクトリと再同期する前にディレクトリを削除するように彼に伝えてください。古いリポジトリの履歴が気になる場合は、ディレクトリのバックアップを作成し、ディレクトリを削除してから、自分のディレクトリと再同期するように伝えてください.git

于 2013-11-08T01:56:45.483 に答える