gitでローカルの作業を無かったことにする方法

結論から言うと、以下のコマンドになります

[farmedgeek@Mint ~/src]$ git checkout .
流れを追っていってみます
  • まずcloneほやほやのこのファイルを編集してみます
[farmedgeek@Mint ~/src]$ cat sample.py 
#!/usr/bin/python
# coding:utf-8

print 1

これを、こう

#!/usr/bin/python
# coding:utf-8

print 20471120

こういうかんじ

  • ステータスを確認してみると、modifiedになってますね
[farmedgeek@Mint ~/src]$ git status
# On branch 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)
#
#	modified:   sample.py
#
no changes added to commit (use "git add" and/or "git commit -a")
[farmedgeek@Mint ~/src]$ 
  • じゃあ戻してみます。

上述したコマンドを実行します。

[farmedgeek@Mint ~/src]$ git checkout .

※addの時と同じで、.(ピリオド)は「すべてに対して」というコマンドになるので
特定のファイルのみ戻す場合は、

[farmedgeek@Mint ~/src]$ git checkout sample.py 

こうなります。

  • 確認
[farmedgeek@Mint ~/src]$ cat sample.py 
#!/usr/bin/python
# coding:utf-8

print 1

戻ってますね。以上です。

gitのcheckoutはbranchの切り替えっていう認識だったので
いわゆるcheckoutっぽい使い方もするんだなと思いました。