2016-08-12 5 views
1

私は自分自身のUnityプロジェクトにGitを使用しています私自身の(私は唯一の開発者です。Git Subtree Specific Ignoring

Unityが知っているように、Unityはプロジェクトのメインフォルダである "Assets"フォルダの下にあるすべてのファイルに対して ".meta"ファイルを作成します。また、これらのファイルは、プロジェクトの完全性を維持するために元のファイルとともに追跡されなければなりません。私はまた、フレームワークと共通のコードリポジトリを持つ

# Unity Project Folder 
/ExampleProjectName/[Ll]ibrary/ 
/ExampleProjectName/[Tt]emp/ 
/ExampleProjectName/[Oo]bj/ 

# Autogenerated VS/MD solution and project files 
ExportedObj/ 
*.csproj 
*.unityproj 
*.sln 
*.suo 
*.tmp 
*.user 
*.userprefs 
*.pidb 
*.booproj 
*.svd 

# Unity3D Generated File On Crash Reports 
sysinfo.txt 

# OS Related Stuff 
desktop.ini 
.DS_Store 
.DS_Store? 
.Spotlight-V100 
.Trashes 
ehthumbs.db 
Thumbs.db 

:ここ

は、プロジェクトのリポジトリの.gitignoreファイルです。そして.metaこれらのスクリプトのファイルは、フレームワークがプロジェクトにインポートされたときに、プロジェクトごとに生成されるため、.metaのファイルをこのフレームワークリポジトリで無視します。あなたは私のようにフレームワークを追加しようとしました想像しているよう

​​

(。そして、フレームワークのレポでどこでも.metaファイルを参照してください迷惑です)

ここでは、フレームワークリポジトリの.gitignoreファイルですプロジェクトリポジトリのサブツリー。実際には動作しますが、問題があります:.metaファイルを無視するフレームワークリポジトリのファイル.gitignoreは、プロジェクトリポジトリにも適用され、サブツリーのディレクトリの下のファイル.metaを無視します。

まとめると:私はサブツリーディレクトリ(再帰的)である.metaファイルをしたいは、プロジェクトリポジトリで追跡するが、フレームワークリポジトリに無視されます。

は(.metaファイルを追跡しなければならない理由を疑問に思う方のために、最も重要な理由は.metaファイルは、各資産のIDが含まれており、Unityは、プロジェクトでこれらの資産をreferanceするために、これらのIDを使用しています。)

答えて

2

.gitignoreファイルをAssetディレクトリに追加して、継承された無知を上書きして無効にすることができます。!

私はあなたのファイル構造階層によってちょっと混乱しています。

git add . && git status --ignored 
:ルートの

. 
├── .gitignore 
├── main.meta 
└── unity 
    ├── .gitignore 
    └── sub.meta 

内容unity/.gitignore

!*.meta 

.gitignore

*.meta 

内容今度は、追跡したいものをgitのを見てみましょう

On branch master 

Initial commit 

Changes to be committed: 
    (use "git rm --cached <file>..." to unstage) 

    new file: .gitignore 
    new file: unity/.gitignore 
    new file: unity/sub.meta 

Ignored files: 
    (use "git add -f <file>..." to include in what will be committed) 

    main.meta 

Unityメタファイルはトラッキングされていますが、他の場所では無視されています。

関連する問題