バージョン管理でフォルダのメタファイルを無視すること
質問
Unity は、次のようなメタファイルを作成および削除します。 フォルダー のメタファイルを作成し、削除します。
それは、バージョン コントロールを使用するときに迷惑な状況を作り出すことができます (それをスキップして質問に行くことができます)。誰かが無視されるファイルのフォルダを作成しますが、そのフォルダのメタ ファイルを無視することを忘れてしまいます。Unityがメタ・ファイルを作成し、この人がメタをバージョン・コントロールに追加します。別の人がチェンジセットを取得し、その人はそのフォルダーを持っていないため その Unity はメタ ファイルを削除し、彼らはメタ ファイルをバージョン管理から削除します。チームの誰もがこのことを理解しているわけではないので、このプロセスは地獄のループのように永続化します。
驚くことに、これはよくあることなのです。そこで、2 つの質問をします。
- フォルダー メタ ファイルのバージョンは重要ですか?
- フォルダのメタファイルを自動的に無視する方法はありますか - 特に git や mercurial で?
どのように解決するのですか?
この Unityのドキュメント は言う。
新しいアセットを作成するときは、アセット自体と関連する .meta ファイルの両方がバージョンコントロールに追加されていることを確認します。
私にとっては、これはバージョン管理の下に置くのに十分な理由です。私は、この問題を解決するために 2 つのアプローチを考えています。
- 組織的な方法。ローカル フォルダに "_"で始まるような命名規則を設定する。しかし、これがうまくいかないことは誰もが知っています;-)。
- クライアント側をインストールする プリコミットフック をすべてのマシンにインストールします。まだやってませんが、期待できそうです。
私はちょうどさまざまなgitコマンドで遊んでいました、以下は便利かもしれません。 git hook スクリプトは、まず .gitignore が次のように変更されたかどうかをチェックする必要があります。
git diff-index --cached --name-only HEAD | grep ".gitignore"
新しく追加された行がAssetsフォルダの下にある場合、そのディレクトリ名を.gitignoreに出力します。
git diff --cached --word-diff=plain .gitignore | grep -o -e "{+\/.*\/Assets\/.*+}" | cut -d + -f 2
更新
こんなpre-commitフックを書きました :-) GitHub リポジトリを参照してください。 git-pre-commit-hook-unity-assets(ギットプレコミットフック-ユニティアセット を、そして私の ブログ投稿 をご覧ください。
関連
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Gitで変更された複数のファイルのうち、1つのファイルだけを隠す?
-
[解決済み] コミットに含まれるすべてのファイルを一覧表示するにはどうすればよいですか?
-
[解決済み] Git リポジトリを特定のフォルダにクローンする方法は?
-
[解決済み] .gitignoreで一部のファイル以外を無視するようにする
-
[解決済み] Git のコミットからファイルを削除する
-
[解決済み] .ideaフォルダーから何をgitignoreするか?
-
git push issues
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] どのブランチとマージしたいかを言わずにpullするように言われました。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
git pull エラー: .git/FETCH_HEAD を開けない: パーミッションが拒否されました。
-
git commit コマンドで追跡した新規ファイルをコミットすると、プロンプト *** Please tell me who you are が表示されます。
-
Gitのエラーについて覚えておく-すべて最新にする
-
なぜこのマージが必要なのかを説明するコミットメッセージを git に入力してください。
-
gitlabの紹介と使い方
-
ファイル名が長すぎるため、作業ツリーをチェックアウトできない警告が表示されました。クローンには成功しましたが、チェックアウトに失敗しました。
-
git のコンパイルとインストールの問題を解決する fatal: https のリモートヘルパーが見つからない
-
[解決済み] GitHubのウェブサイト上でディレクトリやフォルダの名前を変更するには?
-
[解決済み] git add --patch' で新しいファイルをインクルードする?
-
[解決済み] GitとSSH、どちらのキーを使うか?