ハマった
いつも作業するのにWindowsOSでcygwinを使っていた。
いつも通りGitBucketでリポジトリを作成し、ローカル資材をpushして、eclipseでインポートしたら、リポジトリ内の資材のすべてに >
が付与された。
え、なんで!?
さっきgit init
してadd
-> commit
-> push
したばかりの資材。
ファイルを個別に開くことなんてしてないし、ローカルの履歴にももちろん何もない。
cygwinでgit diff
してもなにもない。
これが気持ち悪くてかなり解消するのに少し嵌りました。
試行錯誤する
Eclipseからコミットしてみる
最初は環境が壊れたか!?とか思ってテンパっててgoogleで
"編集してないのにEclipseで編集マークがつく"
とかセンスのない検索をしてましたが、冷静になってみた。
まず、Eclipseが"これ編集されてるよ!"って言ってるくらいだからEclipseからだと変更がコミットできるのか?と思い、プロジェクトルートでTeam -> Commit
を実行してみた。
できた!
大量のファイルがcommit -> pushされたらしい。
そしてEclipse上の >
は消えた。
何が起きた??
これをGitBucketのほうでHistoryを確認してみると、
File renamed without changes
なんでー
差分がわからないよー
Cygwinでdiffを確認する
ここで気づく。
あれ?EclipseからcommitしたからCygwinのほうのでpullする?
(ほんとはEclipseでインポートしてるから必要ない。。。)
しかしCygwinでgit diff
を実行すると大量の差分が!!
old mode 100644
new mode 100755
これだけ。
ファイル内の差分はなし。
うしろ3ケタは権限か??
Eclipseでファイルの権限が書き換わってる???
よくわからないけどCygwinから再度add -> commit -> push
当然Eclipseのほうで >
が復活。
よくわからないけどこれをキーワードにググる
たどり着いた解決策
cygwinのほうで
git config core.filemode false
を実行。
ファイルモードをgitとしては無視するようなconfigなのかな。
(調べてない)
しかしこれを実行してEclipseのほうで資材をRefreshしたら >
は消えてくれた。
謎
今までもいろいろとCygwinでcloneしてEclipseでインポートはやってきたけど、なぜ今になってこんなことになったのか。。。
謎。。。
参考