質問: ### 前提・実現したいこと ##### 環境 * CentOS6.8 * Git v2.7.0 ##### 前提 * rootユーザーとtestユーザーがあるとする * hoge.comをgit管理しているとする * ファイル編集は何もしていないものとする * ファイルの所有者は`test:test`とする ##### 発生している現象 * rootユーザーでhoge.comディレクトリまで移動し、`git status`を叩くと、管理しているファイル全てが変更されていると出る * rootユーザーで`git checkout '変更ファイル'`を叩くと、ファイルの所有者が`test:test`から`root:root`に変更される(全ファイルで所有者が`root:root`から`test:test`に変更されていると解釈しているらしい) * testユーザーになり、`git status`を叩くと、何も変更されていないと出る * もう一度rootユーザーになり、`git status`を叩くと、何も変更されていないと出る ##### 質問 * Gitでファイル権限の変更を管理する設定はあると思うのですが、所有者の変更を管理する設定はあるのでしょうか? * rootユーザーで`git status`変更有 → testユーザーになって`git status`変更無 → rootユーザーに戻って`git status`変更無 のようになるのは何故でしょうか? どのようにしたらこの現象が発生するかはわかっておりません。 一度testユーザーで`git status`を叩くと、rootユーザーでも変更が無くなりますが、いつの間にかまた変更がある状態になってしまいます。 色々調べても解決策が出てこなくて困っております。 よろしくお願い致します。
回答: >Gitでファイル権限の変更を管理する設定はあると思うのですが、所有者の変更を管理する設定はあるのでしょうか? 以下のコマンドでどうでしょうか。 ###### logを取得する $ git log -p <ファイル名> ###### 特定のファイルの変更を取り消す $ git checkout <ファイル名> ###### 特定のディレクトリ以下の変更を再起的に取り消す $git checkout <ディレクトリ名> ###### 全てを元に戻す $ git checkout . >rootユーザーでgit status変更有 → testユーザーになってgit status変更無 → rootユーザーに戻ってgit status変更無 のようになるのは何故でしょうか? 作成された時間から見ると、rootユーザが最初に作成され次にtestユーザが作成されます。 testユーザが作成された時点から見ると何も変更されていないということだと思います。 勝手に変更されるという事象に遭遇したことがないので、調べてみましたが、 以下のリンクで該当しない、また次の項目にも当てはまらないとなるととなると、gitの直しをされた方が よさそうですね。 Windowsでgit cloneするとアクセス権周りの情報が破壊される問題について Macで/usr/local/binの所有者が勝手に変わる問題について ・ほかの人が触ってしまった ・自動で起動するbatファイル等の影響 ・巡回しているシステムetc...