git ITかあさん

ITかあさん

作業ブランチ間違えた!git stashで退避の使い方まとめ

あ。作業ブランチ間違えた!git stashで退避の使い方まとめ

git

忘れてしまいがちなgit stash

commit checkout add が利用頻度高いgitのコマンドかな。
私はその次によく使うコマンドがgit stashでして、

ッアー!作業ブランチ間違えたー!

っていう時に使えます。

stashをして変更分を退避して移動したブランチでcommitをする

STEP1:git stashで一時退避

git stash

or

git stash save "message"

git stashだけでも良いですが、stashに名前をつけて複数 退避させたコードがあると管理しやすいです

STEP2(1):checkoutして退避したコードをマージ

git stash popで最後に退避させたコードをマージすることができます。

git checkout your-branch-name
git stash pop

STEP2(2):stash番号を指定して退避したコードをマージ

最新の退避コードではなく、複数の退避させたコードのうち、番号または名称を指定してマージする方法です

stash一覧を確認
git stash list
stash@{0}: WIP on your-branch-name3: 652br4e あああああ
stash@{1}: WIP on your-branch-name2: wwde12e いいいいい

stash番号を指定してマージ

git stash pop stash@{1}

基本的な使い方は、stashして退避させ、正しいブランチに移動してからstash pop で退避したものを戻します。

その他使いどころとして、まだ実装方法が明確に決まっていない時に仮で作ったものを一時的にとっておくという使い方もできますね。

その他 stashの使い方

退避コード一覧

git stash list

以下コマンドの【】の中はlistで表示されたstash番号を指定

退避のファイルの一覧

git stash show 【stash番号】

git stash show stash@{0}

退避の変更内容を表示

git stash show -p 【stash番号】

(git diffのように表示される)

退避の削除

//全削除
git stash clear
//全削除
git stash drop 【stash番号】

git stash drop stash@{0}

Mac OSの.DS_Storeはグローバルに.gitignoreで永久にコミット対象外に

.DS_Store もう.gitignore毎回書くのやめません?

めんどいわー、うっかり.gitignore漏れてたわー。コミット入っちゃったわー
そんな.DS_Storeは.gitignore_globalで永久にcommit対象外だ!
そもそもMac環境でなければ.DS_Storeは発生しないわけだし、それって.gitignoreに書いてcommitする意味ある?毎回書いててめんどくさい。
そんな時には.gitignore_globalで永久にcommit対象外とします。

ホームディレクトリに.gitignore_global作成

$vi ~/.gitignoreglobal

.DS_Storeを記載

gitへ設定

(見づらいんですが、ハイフンは2つです)

$git config –global core.excludesfile ~/.gitignore_global

gitへ設定

(見づらいんですが、ハイフンは2つです)

$git config –list
core.excludesfile=/Users/itkaasan/.gitignore_global

listに先ほどの.gitignore_globalがあればOK.