問題: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」は手動のままなので一緒に管理したい