

git管理している開発で、作業の途中(コミットするには中途半端)のものを一時的に保存する方法はありませんか?

今はやむを得ず「途中」というコメントでコミットしています。

シチュエーションとしては、しばらく作業から離れる時や、別のPCで作業を再開したい時などがあります。


CC BY-SA 3.0
2016-01-18T01:32:36.563
21015
2016-08-16T03:39:38.500
9149
question
git
作業途中のgit


  * **patch** で作業を一時的に保存する.  
作業の追加

[code]     git add .

    
[/code]

保存

[code]     git diff >> patchfile

    
[/code]

後は

[code]     patch -p1 < patchfile

    
[/code]

  * **stash** で作業を一時的に保存する  
作業の追加

[code]     git add .

    
[/code]

保存

[code]     git stash

    
[/code]

メッセージをつける

[code]     git stash save 'メッセージ'

    
[/code]

保存されている状態のリストを見ることができる。

[code]     git stash list

    
[/code]

前の作業をもどして

[code]     git stash apply

    
[/code]


CC BY-SA 3.0
2016-01-18T02:11:24.760
21017
2016-01-19T06:03:40.727
2016-01-19T06:03:40.727
7325
7325
21015
answer


Qiitaの記事の[Gitのこれやめて！リスト](http://qiita.com/doilux/items/b5a9abd95ac91e848a5f)の[「その３：とりあえずコミットしてPushするのやめて」](http://qiita.com/doilux/items/b5a9abd95ac91e848a5f#%E3%81%9D%E3%81%AE%EF%BC%93%E3%81%A8%E3%82%8A%E3%81%82%E3%81%88%E3%81%9A%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%81%97%E3%81%A6push%E3%81%99%E3%82%8B%E3%81%AE%E3%82%84%E3%82%81%E3%81%A6)の対策として書かれているように、それ用のブランチを作ってコミット＆プッシュすれば良いのではないでしょうか。


CC BY-SA 3.0
2016-01-19T13:59:43.983
21088
2016-01-19T13:59:43.983
7291
21015
answer


`wip` などのコミットメッセージで、ひとまずコミットして、他の端末で利用するならば、(作業用ブランチに)プッシュをします。

特に、ローカルのみで完結する場合でも、最近は stash ではなく commit を利用しています。なぜかというと、 stash はついうっかり drop
してしまうともうその内容は基本的にリカバリーできないですが、 commit ならば reflog が残っていて、そこから復旧できるからです。


CC BY-SA 3.0
2016-08-14T05:26:56.073
28252
2016-08-14T05:26:56.073
754
21015
answer


以前同じようなことを調べた時に[git-now](https://github.com/iwata/git-
now)というツールを見つけたのでそれを使っています。  
`git now`で一時コミットを作成し、`git now rebase`で一時コミットをまとめて`rebase -i`できます。

やっていることは一時コミットを作ることと同じなので、pushするのであれば専用のブランチを作ってからにした方が良いと思います。


CC BY-SA 3.0
2016-08-16T03:39:38.500
28299
2016-08-16T03:39:38.500
2988
21015
answer