ablog

不器用で落着きのない技術者のメモ

git でワーキングディレクトリでファイルを変更したけど元に戻したい場合

どうするんだろうかと思っていたら、git status 打ったときに

$ git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
...

「use "git checkout -- ..." to discard changes in working directory」って言ってくれてるやん。

早速ためしてみた。

$ wc -l make_csv.sql
52 make_csv.sql
$ perl -i -wlne 'print if $. <= 10' make_csv.sql
$ wc -l make_csv.sql
10 make_csv.sql
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 15 commits.
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   make_csv.sql
#
no changes added to commit (use "git add" and/or "git commit -a")
$ git checkout -- make_csv.sql
$ wc -l make_csv.sql
52 make_csv.sql
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 15 commits.
#
nothing to commit (working directory clean)

でけた。


[関連]
github を使ってみた - ablog
Windows でも github を使ってみた - ablog
github のリポジトリにディレクトリを作成して commit する - ablog
github にリポジトリを作成したのと別のマシンからファイルを作成したり削除したりする - ablog
ローカルに git のリポジトリを作ってみた - ablog
日常的な git - ablog