派遣で働くエンジニアのスキルアップを応援するサイト

PRODUCED BY RECRUIT

第11話 git stash でコミットしたくないファイルを一時退避!【連載】マンガでわかるGit ~コマンド編~

f:id:itstaffing:20200415103308j:plain

Webサービスやアプリ開発の現場では必須のバージョン管理システム「Git(ギット)」。Gitは、専用のソフトを使えばクリックで直感的に操作することもできますが、いざというときにコマンドが使えると便利です。

前回の 第10話 では、必要なコミットだけを取り込める「cherry-pick(チェリーピック)」を学びました。

・別のブランチから今いるブランチへ、必要なコミットだけをコピーしてくる

$ git cherry-pick [コミットID]

・複数のコミットを取り込みたい場合

$ git cherry-pick [コミットIDその1]..[コミットIDその2]

・コミットせずに作業ディレクトリだけに変更を留めたい場合

$ git cherry-pick -n [コミットID]

今回の第11話では、まだコミットしたくないファイルを一時退避できる「stash(スタッシュ)」の使い方を学びます。このマンガを通して、わかばちゃんと一緒にGitの知識を身につけていきましょう!

【筆者】湊川 あいさん
【筆者】湊川 あいさん
フリーランスのWebデザイナー・漫画家・イラストレーター。マンガと図解で、技術をわかりやすく伝えることが好き。 著書『わかばちゃんと学ぶGit使い方入門』・『わかばちゃんと学ぶ Googleアナリティクス』・『わかばちゃんと学ぶ Webサイト制作の基本』『運用ちゃんと学ぶ』が発売中のほか、マンガでわかるGit・マンガでわかるDocker・マンガでわかるRuby・マンガでわかるScrapbox・マンガでわかるLINE Clova開発・マンガでわかる衛星データ活用といった分野横断的なコンテンツを展開している。

・Amazon著者ページ
・Twitterアカウント

git stash で編集中のファイルを一時待避

f:id:itstaffing:20200415103301j:plain
f:id:itstaffing:20200415103305j:plain

基本的な git stash の使い方

 
・スタッシュを保存する

作業中のファイルを保存するには、まだコミットしていない状態で、次のコマンドを実行します。

$ git stash save

・保存したリストを見る

過去に保存したスタッシュのリストを見るには、次のコマンドを実行します。

$ git stash list
stash@{0}: WIP on branchA: 29a8f12 add fourth line
stash@{1}: WIP on branchB: 9s06dae add second line

この例では、過去に保存したスタッシュ2つが表示されています。

・stash@{n}と表示されている箇所
→各スタッシュに個別で付けられている名前

・branchA、branchBと表示されている箇所
→スタッシュを行ったときのブランチの名前

・ハッシュ、コミットメッセージ
(29a8f12 add fourth line、9s06dae add second lineの箇所)
→スタッシュを行ったときのHEADのもの

・スタッシュを復活させる

上記により復活させたいスタッシュの名前がわかったので、復活させます。

$ git stash apply stash@{0}

・スタッシュを削除する

復活させたスタッシュが不要になった場合は、こちらのコマンドで削除。

$ git stash drop stash@{0}

・スタッシュの復活と削除を同時に行う

apply → drop と2回打ち込むのが面倒ですよね。なんと、これらを同時に行う便利なコマンドもあります!

$ git stash pop stash@{0}
 
f:id:itstaffing:20190617145538j:plain
スタッシュがたまりすぎると、何がなんだかわからなくなるので、こまめに消すようにね。

まとめ

編集中のファイルを一時退避できる stash について学びました。

・スタッシュを保存する

$ git stash save

・保存したリストを見る

$ git stash list

・スタッシュの復活と削除を同時に行う

$ git stash pop [スタッシュ名]

Gitにはまだまだたくさんのコマンドがあります。
次回は、gitで管理されているソースだけを文字列検索(grep)できるコマンド「git-grep」を学びましょう。


▼登場キャラクター紹介
f:id:itstaffing:20200122103525j:plain

▼わかばちゃんが登場する書籍

▼ これまでの「マンガでわかるGit」