• 線上工具
  • - 計算器
    • 字元計數
  • - 下載
    • TikTok 下載
    • 抖音下載
  • - 網路工具
    • BASE64
    • Base64 轉圖片
    • 圖片轉 Base64
    • URL 編碼
    • JavaScript
    • 時間戳
    • Unicode 轉換器
    • JSON 格式化
    • 修改副檔名
    • 製作列表
    • CSS 優化器
  • - 加密工具
    • MD5 加密
    • 隨機生成器
  • - 圖像工具
    • 圖像壓縮
    • QR 碼生成器
    • QR 碼識別器
    • 壁紙預覽
    • 圖片 EXIF
  • - 資訊表
    • 血型遺傳
    • 服裝尺寸
  • [email protected]
DopuBox
  • English
  • Español
  • Français
  • 日本語
  • 한국어
  • 简体中文
  • 繁體中文
全部 ニュース Meta Code 文化・アート
Gitを使用してバイナリオブジェクトを管理する方法
2021-12-03

このシリーズの最初の6つの文章を通じて、Gitを使用してテキストファイルのバージョン管理を行うことを学びました。バイナリファイルもありますが、バージョン管理もできますか?答えは肯定的で、Gitはすでにマルチメディアファイルのようなバイナリ大オブジェクトブロック(blob)を処理できる拡張子を持っている。そこで、今日はGitを使っていわゆるバイナリ資産を管理することを学びます。

Gitが大きなバイナリオブジェクトファイルをうまくサポートしていないことが認められているようです。バイナリ・オブジェクトは、大きなテキスト・ファイルとは異なることを覚えておいてください。Gitは大規模なテキストファイルのバージョン管理に問題はありませんが、不透明なバイナリファイルにはあまり役に立たず、大きなエンティティブラックボックスとして提出するしかありません。

このようなシーンを想定すると、別の人が興奮している第一人称解読ゲームがあり、複雑な3 Dモデリングを作成しています。ソースファイルはバイナリ形式で保存され、最後に1 GBサイズのファイルが生成されます。Gitソースウェアハウス履歴に1 GBサイズの新規コミットが1回コミットされました。その後、モデルの人物の髪の造形を修正して更新を提出します。Gitは頭やモデルの残りの部分から髪を離れることができないので、1 GBの量しか提出できません。次に、モデルの目の色を変更して、この部分の更新を提出します:またGB級の提出量です。1つのモデルに対するいくつかの微小な修正は,3 GB級のコミット量をもたらす.1つのゲームのすべてのリソースをバージョン管理したいという規模については、深刻な問題です。

異なるのはobjのようなフォーマットのテキストファイルであり、他のタイプのファイルと同様に、objファイルがモデルを記述する一連の純粋なテキスト行である場合とは異なり、すべての更新変更状態をコミットして格納する。モデルを修正してobjファイルに保存すると、Gitは2つのファイルを行ごとに読み取り、差分バージョンを作成してかなりのコミットを得ることができます。モデルが細かくなればなるほど、コミットは小さくなります。これが標準的なGitの例です。ファイル自体は大きいが、Gitは上書きまたは疎ストレージの方法を使用して現在のデータ使用状態の完全な説明を構築する。

しかし、すべてが純粋なテキストであるわけではありませんが、Gitを使用するので、解決策が必要で、いくつか現れています。

OSTreeは、オペレーティングシステムのバイナリファイルを管理するためにGNOMEプロジェクトとして登場しました。ここには適用されないので、直接スキップします。

Git大ファイルストレージ(LFS)は、Git Hub上に置かれたオープンソースプロジェクトであり、git-mediaプロジェクトから分岐している。git-mediaとgit-annexはGitが大きなファイルを管理するための拡張です。これらは同じ問題に対する2つの異なる解決策であり,それぞれ利点がある。公式のプロジェクトではありませんが、私から見れば、それぞれユニークな点があります。

これらについて、git-mediaとgit-annexを生産に使用しました。では、その動作原理を説明します。

git-media

git-mediaはRuby言語で開発されているので、まずgem(LCTT訳注:GemはRubyベースのいくつかの開発ツールパッケージ)をインストールします。インストールの説明は、Webサイトにあります。git-meidaを使用するユーザーは、gemがプラットフォームにまたがるツールであるため、各プラットフォームで適用される必要があります。

git-mediaのインストールが完了したら、Gitの構成オプションを設定する必要があります。各マシンに一度だけ配置する必要があります。

$git config filter.media.clean "git-media filter-clean"
$ git config filter.media.smudge "git-media filter-smudge"

git-mediaを使用する各リポジトリで、作成したフィルタをメディアに分類するファイルタイプに結合するプロパティを設定します。このような用語に混同されてはいけない。より良い用語は「アセット」です。メディアは通常、オーディオ、ビデオ、写真を意味しますが、3 Dモデル、ベイク処理、テクスチャなどをメディアとして簡単に分類することができます。

例:

$ echo "*.mp4 filter=media -crlf" >> .gitattributes
$ echo "*.mkv filter=media -crlf" >> .gitattributes
$ echo "*.wav filter=media -crlf" >> .gitattributes
$ echo "*.flac filter=media -crlf" >> .gitattributes
$ echo "*.kra filter=media -crlf" >> .gitattributes
stage

サーバにGitソースウェアハウスが既に存在すると仮定し、最後のステップでソースウェアハウスの「母艦」が存在する場所、すなわち、メディアファイルがすべてのユーザ共有にプッシュされると、メディアファイルが格納される場所をソースウェアハウスに伝える。これは倉庫のgit/configファイルで設定されています。ユーザー名、ホスト、パスに置き換えてください。

[git-media]
transport = scp
autodownload = false #默认为 true,拉取资源
scpuser = seth
scphost = example.com
scppath = /opt/jupiter.git

サーバ上のSSH設定が複雑な場合、たとえば非標準ポートまたは非デフォルトSSHキーファイルのパスを使用している場合は、ssh/configを使用してホストのデフォルト構成を設定します。

git-mediaの使用は通常ファイルと同様に、通常ファイルとblobファイルを同じように扱うことができ、commit操作を行うことができます。操作プロセスの唯一の違いは、資産(またはメディア)を共有リポジトリに同期する必要がある場合です。

チームの資産または自己バックアップ資料を公開する場合は、次のコマンドを使用します。

$ git media sync

git-mediaのファイルを変更後のバージョンで置き換える場合(たとえば、美声化されたオーディオファイル、または完了したマスクペイント、または色に階層化されたビデオファイル)、Gitにメディアを更新するように明確に伝える必要があります。これはgit-mediaがリモートですでに存在するファイルのデフォルト設定をコピーしないことを上書きします。

$ git update-index --really-refresh

チームの他のメンバー(またはご本人、他のマシン)がこのウェアハウスをクローン化している場合、git/configでautodownloadオプションをtrueに設定していない場合は、デフォルトではリソースはダウンロードされません。しかしgit-mediaの同期コマンドgit media syncは、すべての問題を解決します。

git-annex

git-annexの処理フローはやや異なり、デフォルトではローカル倉庫を使用していますが、基本的な考え方は同じです。リリース版のソフトウェアウェアハウスからgit-annexをインストールするか、必要に応じてこのサイトからインストールをダウンロードできます。git-mediaと同様にgit-annexを使用するユーザーは、そのマシンにインストールする必要があります。

git-mediaよりも初期化設定が簡単です。次のコマンドを実行して、パスに置き換えると、サーバに裸のリポジトリを作成できます。

$ git init --bare --shared /opt/jupiter.git

ローカルコンピュータにクローンしgit-annexの初期パスとしてマークします。

$ git clone [email protected]:/opt/jupiter.clone
Cloning into 'jupiter.clone'... 
warning: You appear to have clonedan empty repository. 
Checking connectivity... done.
$ git annex init "seth workstation" 
init seth workstation ok

フィルタを使用してメディアリソースまたは大ファイルを区別するのではなく、git annexコマンドを使用して大ファイルの分類を構成できます。

$ git annex add bigblobfile.flac
add bigblobfile.flac
(checksum) ok
(Recording state in Git...)

通常のファイルと同様にコミット操作を行います。

$ git commit -m 'added flac source for sound fx'

しかし、git annexは自分のブランチを使用して資産を追跡するため、プッシュ操作は異なります。リポジトリの管理方法に応じて、最初のプッシュには-uオプションが必要です。

$ git push -u origin master git-annex
To [email protected]:/opt/jupiter.git
* [new branch] master -> master
* [new branch] git-annex -> git-annex

git-mediaと同様に、通常のgit pushコマンドはサーバにデータをコピーしません。関連するメッセージを送信しただけです。ファイルを本当に共有するには、同期コマンドを実行する必要があります。

$ git annex sync --content

人はすでに共有リソースをコミットしています。それを引き出す必要があります。git annex syncコマンドでは、ローカルでローカルにホストが存在しないが、サーバに存在するリソースをチェックアウトするよう求められます。

git-mediaとgit-annexは非常に柔軟で、サーバの代わりにローカル・リポジトリを使用することができるため、プライベートなローカル・プロジェクトの管理にもよく使用されます。

Gitは非常に強力で拡張性の高いシステムアプリケーションであり、ためらうことなく使用するべきです。今からやってみよう!


ソース元URL:https://dopubox.com/article/p/1af40fcc9fd75485

其他工具
  • 字元計數 TikTok 下載 抖音下載 BASE64 Base64 轉圖片 圖片轉 Base64 URL 編碼 JavaScript 時間戳 Unicode 轉換器 JSON 格式化 修改副檔名 製作列表 CSS 優化器 MD5 加密 隨機生成器 圖像壓縮 QR 碼生成器 QR 碼識別器 壁紙預覽 圖片 EXIF 血型遺傳 服裝尺寸
  • 住所要件の指摘受け自主的に転入 東京・足立区の20代選管委員・古野香織さん
    2024-05-30

    黒柳徹子さん、北京で特別授業 「日本語勉強続けて」
    2024-05-31

    【6月1日~2日】週末必見の“アート&デザイン”まとめ!
    2024-06-01

    エリザベートコンクールで吉田さん6位入賞
    2024-06-01

    大阪はアートとデザインの街となるか? Osaka Art & Design 2024の見どころをレポート
    2024-06-03

    道後温泉の記憶を継承するアート 大竹伸朗が“描き”重要文化財を守ったテント膜「熱景」の再生
    2024-06-03

    現代美術作家の杉本博司がYouTubeチャンネル開設 素顔に迫る映像を公開
    2024-06-04

    特別展 「工芸的美しさの行方―うつわ・包み・装飾」が東京と京都で開催。日本の美術工芸を世界へ 
    2024-06-04

    「企画展 歌と物語の絵 ―雅やかなやまと絵の世界」(泉屋博古館東京)開幕レポート。歌、物語、絵画が織りなす芸術世界へ
    2024-06-04

    多摩美術大学がAIやサーキュラーなど5つの最先端のテーマを研究するプラットフォームをスタート
    2024-06-04

    PARCELで「Not Quite」開催。「~でなくもない」作家が集結
    2024-06-04

    五木ひろし歌手生活60年…ふるさと福井へ恩返しの新曲
    2024-06-04

    「避難いただけるほうが一安心」珠洲で激しい揺れに耐えた仏像、奈良博で縁つなぐ
    2024-06-04

    「再会長江」北京で特別上映 竹内監督のトークイベントも
    2024-06-04

    ビル・エヴァンスの名言「才能なんて取るに足りない」【本と名言365】
    2024-06-05

    岡田将生の初ブランド「IN MY DEN」始動、第1弾グッズの受注販売がスタート
    2024-06-06

    そごう・西武が百貨店として初めてNFTマーケット開設、NFT作品約100点を発売
    2024-06-06

    「art stage OSAKA 2024」が9月に開催。大阪・関西万博への機運も醸成
    2024-06-05

    京都・祇園祭の「長刀鉾」稚児決まる 記者会見で「頑張ります」
    2024-06-06

    umami.is をおすすめする理由
    2025-07-04

    ©  Dopu Box
    💛