【git】Assume Unchanged を取り消しする

ある日のことEclipseのGUIで操作をしていたところ、 間違えて Assume Unchanged をクリックしてしまいました。

「gitのAssume Unchanged って何?」「解決策はどうしたらいいの?」「Assume Unchanged ってどうやって取り消しするの?」ってことで最終的には解決できるように紹介をしていきます。

どうしてAssume Unchanged コマンドを実行してしまったのか

そもそも私の場合は、EclipseのGUIで「Replace with HEAD Revision/変更済みのファイルを変更前に戻す」を操作したかったのですが指が滑って、その下の「Assume Unchanged」をクリックしたのが始まりでした。ていうか全く意図が異なるコマンドを近距離に配置しすぎるんだよEclipse!!

Assume Unchanged とは

そもそもAssume Unchanged とは。

Assume の意味は「仮定する、見なす、前提とする」というような意味があります。

つまり Assume Unchanged で特定のファイルに対して、「変更なしと見なす」と理解できます。

Assume Unchanged されたファイルは、変更を加えたとしてもgit の操作に影響を与えないということです。

本来的なAssume Unchanged の使い方

本来的にはgitのステージに上げたくないファイルを、Assume Unchanged して無視・回避させるというのが正しい使い方です。

git のコマンドを利用しては以下のコマンドを実行することでファイルを無視・回避させることができます。

私の場合はGUIで1クリックで実行されてしまいましたが、本来的には以下のコマンドになります。

% git update-index --assume-unchanged <ファイル名>

Assume Unchanged を取り消しする

というわけで早速AssumeUnchangedを取り消しする方法を紹介していきます。

まずは Assume Unchanged になっているファイルの一覧を確認します。

% git ls-files -v | grep '^h'
h templates/sample.html

こんな感じでsample.htmlがAssumeUnchanged されていることが確認できました。

そして AssumeUnchanged されている状態を取り消す方法として以下のコマンドを実行します。

% git update-index --no-assume-unchanged <ファイル名>

このコマンドだけでは何が実行されたのかが表示されませんので、再度 Assume Unchanged になっているファイルの一覧取得をコマンドを使って確認します。

% git ls-files -v|grep '^h'

何も出てこないで、Assume Unchanged になっているファイルがないことを確認できました。

最後に

いかがでしたでしょうか。

以上が「【git】Assume Unchanged を取り消しする」の紹介記事になります。

プログラミングを始めたばかりの頃は、安易にGUI(マウスやタッチパネルで操作)をせずに、きちんとコマンドラインから意味を理解しながらgitコマンド操作をすることをお勧めします。

そうすることで今回のようなミスも防げますし、ミスを検索してリカバリーするまでの時間もかかりません。

本当に意味を理解して慣れたと思ったらGUIを使って良いと考えます。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です