7

たくさんのソース コードを含む git リポジトリがあり、それをコンパイルすると、たくさんのバイナリが生成されます。バイナリはすべて適切な .gitignore ファイルにリストされており、リポジトリには含まれていません。

ただし、.git/ ディレクトリなどではなく、すべてのバイナリを含むレポのソース + バイナリ スナップショット zip ファイルを配布したいと考えています。

スナップショットの zip ファイルを作成する自然な方法は、次のように思われるでしょう。

git archive -o archive.zip 

ただし、.gitignore にあるバイナリは含まれません。

git アーカイブでこれを達成する方法についてのアイデアはありますか? (私の回避策は、.git/ ディレクトリ以外のすべてを含む zip アーカイブを手動で作成することです)

4

4 に答える 4

4

達成したいことのために「gitアーカイブ」を使用できるとは思いません。「git archive」はコミットで機能し、バイナリ ファイルは表示されません。「git アーカイブ」は非常にコミット中心であるため、明示的にソース管理されたファイルが存在しない裸のリポジトリで直接 git アーカイブを使用できます。

于 2012-04-10T23:53:17.970 に答える
0

GoZonerが述べているよう 、これは で実行できるタスクではありません。git archive

適切なタスクには適切なツールを使用してください。私も非常に似たようなことをしており、ソースとコンパイル済みのものを含むアーカイブを作成する Perl スクリプトを持っています。

コンパイル中に作成されたすべてのものを単純に圧縮することは、おそらくあなたが望むものではありません:

  • ライブラリを誰かに譲渡したい場合、彼はライブラリとライブラリを使用できるようにするためのいくつかのヘッダーにのみ関心があります。たとえば、オブジェクト ファイルやその他の中間ファイルをアーカイブする必要はありません。

  • 視聴者が自分でライブラリをビルドできるようにしたい場合は、ソース、必要なプロジェクト ファイル、および場合によってはビルド済みのバイナリを含めます。

  • ...

したがって、私の経験から、選択したスクリプト言語を使用し、その言語の提供されたメカニズムを使用してディストリビューションを作成することをお勧めします。そうすることで、ディスク上の構造と一致する必要のない別のフォルダー構造をディストリビューションに作成することもできます。

アーカイブが作成された元の git リビジョンを確認するには、そのリビジョンを zip ファイルのコメントに保存します。

スクリーンショット

于 2012-04-11T12:13:51.490 に答える