Posted at

git statusで表示されるtypechangeとは

More than 5 years have passed since last update.

git status をしたときに、こんな表示がありました。

% git status

On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)

typechange: foo/bar/baz/hoge.rb

no changes added to commit (use "git add" and/or "git commit -a")

ちなみに、 git status -sb を使っている場合、以下のようになります。

% git st

## master...origin/master
T foo/bar/baz/hoge.rb

What does "T" mean in "git status"? (it isn't in the man page) - Stack Overflow

man git-diff-files をみてみます。

% man git-diff-files


--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]
Select only files that are Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R), have their type (i.e. regular file, symlink, submodule,
...) changed (T), are Unmerged (U), are Unknown (X), or have had their pairing Broken (B). Any combination of the filter characters (including none)

要は普通のファイルがシンボリックリンクになったり、同じファイル名で種類が変わるとtypechangeとなるようです。