LoginSignup
1
3

More than 5 years have passed since last update.

Unityの余計なファイルをgit diffの対象外にする

Last updated at Posted at 2017-06-27

問題:Unity立ち上げただけなのに差分が出てしまう

gitを綺麗にしてからUnityを起動すると見知らぬファイルの差分がたんまり...。

On branch develop
Your branch is up-to-date with 'origin/develop'.
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   myProject/Assets/App/Art/Effect/Mbo/USS.meta
    modified:   myProject/Assets/App/Art/shs/Materials.meta
    modified:   myProject/Assets/App/Art/tst/TO.meta
    deleted:    myProject/Assets/App/Art/sb/de/Ma/de_1053.meta
    deleted:    myProject/Assets/App/GameData/ER/Bu/Mo/de/Ma/de.meta
    modified:   myProject/Assets/App/GameData/ER/So/VO/10045.meta
    deleted:    myProject/Assets/App/GameData/ER/To/Un.meta
    deleted:    myProject/Assets/App/GameData/ER/UI/CD/cd_07.prefab.meta
    deleted:    myProject/Assets/App/GameData/ER/UI/TR.meta
    modified:   myProject/Assets/App/GameData/Re/Ba/Te/ba.png.meta
    deleted:    myProject/Assets/App/GameData/Re/UI/Su.meta
    modified:   myProject/Assets/App/Scenes/Ga/Co.unity

※適当に伏せ字にしています

解決策:個人ignoreファイルをワンライナーで作成する

以下を丸っとbash_profileに登録しています。

# ==== 以下独自git ====

# 【Original Git Ignore】 操作しないゴミファイルを登録する(個人ignore)
alias ogi='git diff --name-only > gitTemp; cat gitTemp'

# 【Original Git Diff】 ゴミ以外のファイルの差分を全て表示する
alias ogd='git diff --name-only | grep -vf gitTemp | xargs git diff'

# 【Original Git Diff --Name-only】 ゴミ以外の差分のファイル名を表示する
alias ogdn='git diff --name-only | grep -vf gitTemp'

# 【Original Git Add】 ゴミ以外の差分を全て追加する
alias oga='git diff --name-only | grep -vf gitTemp | xargs git add; git status -uno'

# ==== 独自git 終了 ====

解説

Unity起動時

# 【Original Git Ignore】 操作しないゴミファイルを登録する(個人ignore)
alias ogi='git diff --name-only > gitTemp; cat gitTemp'

作業を行う前に「ogi」を実行します。
現状のdiffをgitTempファイルに書き込みます。
gitTempに書き込まれたパスは以降の操作の対象外となります。

diff確認時

# 【Original Git Diff】 ゴミ以外のファイルの差分を全て表示する
alias ogd='git diff --name-only | grep -vf gitTemp | xargs git diff'

# 【Original Git Diff --Name-only】 ゴミ以外の差分のファイル名を表示する
alias ogdn='git diff --name-only | grep -vf gitTemp'

「ogd」とするとgitTempに含まれないパスの「git diff」が表示されます。
「ogdn」とするとgitTempに含まれないパスの「git diff --name-only」が表示されます。
自分の変更分だけが表示されます。

add時

# 【Original Git Add】 ゴミ以外の差分を全て追加する
alias oga='git diff --name-only | grep -vf gitTemp | xargs git add; git status -uno'

diffに問題がなければ「oga」を実行します。
「ogd」「ogdn」で確認したファイルが「git add」されます。
あとはいつも通りcommit & pushします。

ゴミファイルと自分の変更ファイルが混在したら

vi gitTemp

でパスを削除したり、追加したりします。

改善点

  • 新規ファイルの「git add」は手動のままなので一緒に管理したい
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3