LoginSignup
5
3

More than 5 years have passed since last update.

gitで管理している資材が編集してないのにeclipseで編集マークが付く

Posted at

ハマった

いつも作業するのに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でインポートはやってきたけど、なぜ今になってこんなことになったのか。。。
謎。。。

参考

5
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
5
3