̃Gg[͂ĂȃubN}[Nɒlj

git :: 手元(working directory)の変更を commit せずに、pull したい時



手元(working directory)の変更を commit せずに pull しようとすると下記のエラーで怒られます。

error: Your local changes to the following files would be overwritten by merge:
        path/to/file
Please, commit your changes or stash them before you can merge.
Aborting

そんな時は stash (変更を一時的に隠す)してから pull します。
手順としては下記になります。

1. stash save: 現在の状態を保存し、git 上から変更箇所を隠します。

$ git stash save <コメント>
Saved working directory and index state On master: <コメント>
HEAD is now at 13770bf hoge
  • <コメント> を付けることも出来ます。2の shash list で見た時に何の shash か分かり易くなります。

2. stash list: shash の一覧を見ることができます。

$ git stash list
stash@{0}: On master: <コメント>

3. pull します。

$ git pull

4. stash pop: 1で隠した変更箇所を元に戻します。

$ git stash pop
Auto-merging path/to/file
  :
(snip)
  :
Dropped refs/stash@{0} (fb418991e1ace34585c49007c0976a19e89f3efd)





unix/command/git/operation/no_commit_and_pull.txt