web-dev-qa-db-ja.com

gitはバイナリファイルをどのように処理しますか?

  • いくつかのファイルがsvnのようにバイナリかどうかをgitに伝えるために何かを設定する必要がありますか?または、gitはバイナリデータを自動的に処理できますか?
  • バイナリファイルを変更して、バイナリリビジョンが100個ある場合、gitは100個のバージョンすべてをリポジトリに個別に保存しますか?
  • Gitのサブモジュールとは何ですか?
57
prosseek
  1. Gitは通常、バイナリファイルを自動的に検出できます。
  2. いいえ、Gitはデルタベースの変更セットを保存しようとします 費用が安い場合 (常にそうとは限りません)。
  3. サブモジュールは、プロジェクト内の他のGitリポジトリを参照する場合に使用されます。
51
Amber

Gitはヒューリスティックを使用して、ファイルがバイナリかどうかを判断しようとします。これを参照してください 記事 詳細とgitに特定のファイルをバイナリとして処理させる方法について。

サブモジュールの適切なチュートリアルについては、 here および here を参照してください。

20
Jason Jenkins

私は本質的に同じ問題を抱えていました:バイナリであるpickleファイルをgitにしたかったのですが、gitはそれらをテキストだと思っています。

Pro Git Bookで Git属性に関するこの章 を見つけました。そこで、次の行で.gitattributesファイルを作成して問題を解決しました。

*.pickle binary
11
Alexandre Mazel
git add my-binary-file
git commit
git Push

バイナリファイルを追加します。自動です。

実際、ファイルのバージョンが100個ある場合、ファイルは保存されます(ただし圧縮されます)。

サブモジュールを使用して、他のリポジトリへの参照を作成できます。