Git でローカル変更を破棄したい
株式会社オズビジョンのユッコ (@terra_yucco) です。
今日は一つ自分の仕事がラクになった話を。
TL;DR
# specified file
git checkout /path/to/file
# modified all file
git checkout .
以下詳細
PhpStorm 便利機能
# specified file
git checkout /path/to/file
# modified all file
git checkout .
PhpStorm 便利機能
PHP を書くのには PhpStorm を使っていますが (最近登場頻度低い)、Git の操作は
- GUI がもっさり動くのが嫌
- 裏で何が動いているのかわからない
という理由により基本的にターミナル派。
しかし今まで便利なので PhpStorm 側でやっていた機能がありました。
Revert。
ローカルで dump 仕込んでいた時などに戻し忘れ、Pull しようとすると Abort されるアレ。
他の作業者と被りがちなファイルを変更したときなど、よくお世話になります。
y-terashima@PC MINGW64 /path/to/git (feature/hoge)
$ git pull
remote: Enumerating objects: 225, done.
remote: Counting objects: 100% (225/225), done.
remote: Compressing objects: 100% (5/5), done.
Receiving objremote: Total 672 (delta 219), reused 221 (delta 219), pack-reused 447
Receiving objects: 100% (672/672), 136.16 KiB | 0 bytes/s, done.
Resolving deltas: 100% (407/407), completed with 92 local objects.
From https://github.com/path/to/git
(略)
error: Your local changes to the following files would be overwritten by merge:
path/to/config/config.php
Please commit your changes or stash them before you merge.
Aborting
Updating xxxxxxx00..xxxxxxxFF
コマンドラインでの方法
とはいえ最近前述の通り PhpStorm の起動頻度が低いのと、PC が不調で重い IDE をあまり起動したくないので、Git Bash を使うことが増えました。
そこでコマンドラインでできないかを調べてみた。
git --help より
y-terashima@PC MINGW64 /path/to/git (feature/hoge)
$ git --version
git version 2.12.2.windows.2
y-terashima@PC MINGW64 /path/to/git (feature/hoge)
$ git --help
usage: git [--version] [--help] [-C <path>] [-c name=value]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
These are common Git commands used in various situations:
start a working area (see also: git help tutorial)
clone Clone a repository into a new directory
init Create an empty Git repository or reinitialize an existing one
work on the current change (see also: git help everyday)
add Add file contents to the index
mv Move or rename a file, a directory, or a symlink
reset Reset current HEAD to the specified state
rm Remove files from the working tree and from the index
examine the history and state (see also: git help revisions)
bisect Use binary search to find the commit that introduced a bug
grep Print lines matching a pattern
log Show commit logs
show Show various types of objects
status Show the working tree status
grow, mark and tweak your common history
branch List, create, or delete branches
checkout Switch branches or restore working tree files
commit Record changes to the repository
diff Show changes between commits, commit and working tree, etc
merge Join two or more development histories together
rebase Reapply commits on top of another base tip
tag Create, list, delete or verify a tag object signed with GPG
collaborate (see also: git help workflows)
fetch Download objects and refs from another repository
pull Fetch from and integrate with another repository or a local branch
push Update remote refs along with associated objects
'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.
checkout
checkout Switch branches or restore working tree files
ブランチの変更または、ワーキングツリーのファイルをリストアする。
前者はよく使うこれ
git checkout branch-name
後者が今回お世話になったこのコマンドになります。
git checkout /path/to/file
Conclusion
こういう小さいことも積み重ねて業務効率を上げていきたいものです。
Author And Source
この問題について(Git でローカル変更を破棄したい), 我々は、より多くの情報をここで見つけました https://qiita.com/terra_yucco/items/842a63485421f466d9e0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .