【Xcode/Git】stashとは?変更を避けてコミットする方法!

この記事からわかること

  • Gitstash実行する方法
  • stashとは?
  • Xcodeでの操作方法

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

Gitの便利な機能の1つ「stash(スタッシュ)」についてどのようなものなのか、そしてXcodeではどのように操作するのかをまとめていきたいと思います。

Git stashとは?

Gitのstashとは作業中の変更を一時的に避けて保存しておくことができる機能です。例えばコミットする前にブランチを移動したい場合など何かしらの変更がある状態から、何も変更がない状態に移りたい時に活躍します。

スタッシュが保存するのは現時点での前のコミットからの変更内容です。スタッシュする際はスタッシュの説明となる名前をつけて後から識別できるようにします。

また連続でスタッシュすることも可能となっており、指定のコマンドを叩くことでスタッシュを戻し、作業ツリーに変更を戻すことができます。

stashするコマンド

スタッシュするにはgit stashコマンドのsaveオプションを使用し、引数としてスタッシュの名前を渡します。

$ git stash save "説明"

スタッシュ履歴を確認する

現在のスタッシュ履歴を確認するにはlistを使用します。

$ git stash list
stash@{0}: On main: 説明
stash@{1}: On main: AAの改修
stash@{2}: On main: BBの改修
stash@{3}: On main: CCの改修

格納されているスタッシュにはstash@{n}形式の識別子が振られます。この識別子をshowの後に渡すことで任意のスタッシュの変更履歴を確認することができます。

$ git stash show stash@{0}
 ArtistList.txt | 1 +
 1 file changed, 1 insertion(+)

stash@{n}を指定しないと最新のスタッシュを表示します。

スタッシュを戻す

スタッシュを戻すにはapplyを使用します。これで作業ツリーの内容がスタッシュの内容に戻ります

$ git stash apply
On branch main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   ArtistList.txt
;
no changes added to commit (use "git add" and/or "git commit -a")

applyを使用した場合はスタッシュは消去されずに残ります

$ git stash list
stash@{0}: On main: 説明

スタッシュ履歴ごと無くしたい場合はpopを使用します。

スタッシュを指定してapplyする

スタッシュが複数ある場合に指定してapplyするには指定したい番号を渡します。この番号はlistした際の{n}部分になります。

git stash apply [番号]
git stash apply 1

Xcodeでスタッシュを操作する

おすすめ記事:【Xcode】Gitの連携方法と使い方!バージョン管理方法

iOSアプリ開発で使用する統合開発環境XcodeからでもGitの操作はできるようになっており、スタッシュもコマンドを使用することなく実行可能です。操作するのはXcodeの上部メニュー>「Source Control」>「Stashed Changes」です。

Xcode/Swiftをgitのローカルリポジトリにコミットする

ファイルに何かしらの変更がある状態で「Stashed Changes」をクリックし、以下画面に説明を書き込みます。

【Xcode/Git】stashとは?変更を避けてコミットする方法!

するとXcode左のナビゲータエリアの左から2つ目のアイコン(Source Control)からスタッシュの履歴を確認することができます。ファイルの差分もわかりやすくなっています。

【Xcode/Git】stashとは?変更を避けてコミットする方法!

スタッシュを戻したい場合はスタッシュも右クリックして「Apply Stashed Changes」をクリックし、「作業ツリーのファイルの変更を復元しますか?」に「Apply Stash」を押すことで実行できます。

【Xcode/Git】stashとは?変更を避けてコミットする方法!

スタッシュをApplyしても履歴は残りますので不要であればスタッシュも右クリックして「Delete」で消去してください。

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index