日々のことば(ブログ)

XcodeのSource Control入門|CommitとStashで“壊れても戻れる”開発にする

おはよう。今日はXcodeのSource Control(=Git)で、事故らずに開発するための“戻し方”を、手順込みでまとめる。CommitとStashが分かるだけで、開発は「壊れたら終わり」から「壊れても戻れる」に変わる。初心者が一番最初に覚えるべき安全運転だ。


◾️まず用語を日本語に置き換える

Source Control:変更履歴を管理して、いつでも戻せるようにする仕組み(Xcodeではこの名前で出る)
Git:その仕組みの代表格の名前。XcodeのSource Controlの裏側がだいたいこれ
Commit:セーブポイントを作る(ここまではOKという保存)
Stash:いま途中の変更を“引き出しにしまう”(机の上を一旦空にする)
Apply Stash:しまった作業を“机に戻す”
Pop Stash:戻したうえで“引き出しから消す”(戻して終わったら消える)


◾️1分でわかる:CommitとStashの違い

Commit=「保存」:確定した安全な状態を残す。いつでも戻れる。

Stash=「一時退避」:まだ確定したくない途中作業をしまう。あとで戻せる。

この2つで“事故らない”。


◾️実務で一番使う型:「安全地点→実験→ダメなら戻す」

CSVローダーやCSV差し替えみたいな“壊れやすい作業”は、この型でやる。

  1. まず動く状態を作る
  2. Commitする(セーブポイント)
  3. 実験する(CSVローダー変更・CSV差し替え)
  4. うまくいかなかったらStashする(変更をしまう)
  5. すぐ安全な状態に戻れる
  6. 必要ならApply Stashで続きに戻るこれを知ってるだけで、手動でファイルを戻す必要が消える。

◾️Xcodeでの具体手順:Commit(セーブポイントを作る)

  1. 左のナビゲータで「Source Control」または「Changes」を開く
  2. 変更ファイルが一覧に出る(緑/青のMとかAとか)
  3. メニューで Source Control → Commit…
  4. 変更内容を確認して、メッセージを書く 例:baseline: build ok 例:csv loader: parse quotes
  5. Commit

コツ:メッセージは「何ができた状態か」を短く。

「動く」「ビルド通る」「CSV読み込みOK」みたいな“戻りたい地点”を書く。


◾️Xcodeでの具体手順:Stash(作業途中を退避)

「いまの変更、まだCommitしたくない。でも一旦元に戻したい」って時に使う。

  1. メニュー Source Control → Stash Changes…
  2. 名前を付ける(重要) 例:wip: csv rfc4180 trial 例:wip: category bug hunt
  3. Stash

すると何が起きる?

変更が“引き出しに入る”。作業ツリーがきれいになる。さっきまでの変更が一旦消える。つまりセーブポイント(Commit)状態に戻る。


◾️Stashを戻す:Apply / Pop(ここ超重要)

  1. Source Control のサイドバーに「Stashed Changes」が出る
  2. そこを開く
  3. 使いたいスタッシュを右クリック Apply Stash:戻す(スタッシュは残る) Pop Stash:戻して消す(戻したら引き出しから消える)

使い分け:

まだ試行錯誤する → Apply(保険で残す)

もう終わった → Pop(片付け)


◾️過去のCommitに戻る:Switch / Checkout(「セーブ地点に移動」)

「Switch to “〇〇〇”…」がまさにそれ。意味は「そのコミット時点の状態に切り替える」。

  1. Repositories / History を開く(コミット一覧が見える画面)
  2. 戻りたいコミットを右クリック
  3. Switch to “” を選ぶ(またはCheckout表記の場合もある)

注意:この操作は“時間移動”みたいなもの。その地点にいる間は、未来(最新)の変更は一旦見えなくなる。怖く見えるけど普通。戻る時は、同じように最新コミットにSwitchすればいい。


◾️Tag(目印)を付けると、さらに迷子にならない

コミットが増えるほど「どれが安全だったっけ?」ってなる。Tagは“ここが基地”って札。

  1. コミット一覧で、安全なコミットを右クリック
  2. Tag “”…
  3. 例:v0.1-build-ok / baseline-csv-okタグを付けると、「hashの羅列」じゃなく「名前」で戻れるようになる。初心者ほど効く。

◾️Stashが必要になる代表パターン

コードを変えて試したい。データ差し替えで挙動が変わるか検証したい。でもCommitするほど確定してない。一旦元に戻して原因切り分けをしたい。こういう場面はStashが最強。机を空にして、落ち着いて切り分けできる。


◾️最後にRemote(GitHub)の話:ローカルだけだと“PCが壊れたら終わり”

ローカルCommitは強いけど、Macが壊れたりプロジェクトが飛んだら終わる。そこでRemote=クラウド側の保管庫を使う。代表がGitHub。やることは超シンプルで、概念はこれだけ。Remote(GitHub)にリポジトリを作る。ローカルの履歴をPushしてバックアップする。別PCでもPullで復元できる。

ここでよくある疑問が「iCloudに保存してるから大丈夫じゃない?」ってやつ。iCloudは“ファイルそのもの”を同期して守るのが得意。一方でGitHubは“変更の履歴(差分)”を積み上げて守るのが得意。だから、iCloudは「最新版が残る」には強いけど、「いつの状態に戻したい」「どこから壊れたか追いたい」「チームや別PCで同じ履歴を共有したい」みたいな用途はGitHubのほうが圧倒的に向いてる。両方やるとさらに強い。

初心者のおすすめ運用:大きな節目(動いた、機能完成、データ整った)でCommit。そのあとPush(クラウドにも保存)。これで「戻れる」+「失くさない」が揃う。


◾️まとめ:順番はこれ

  1. XcodeでCommitを習慣化(セーブポイント)
  2. Stashで途中作業を安全に退避
  3. Tagで基地を作る
  4. 最後にGitHubでバックアップ(Push)

さあ、こういった知識を一つ知るだけで、これまでと違った世界が見えてくる。知ってるのと知ってないのでは全然違う。効率も、事故の確率も。だからこそ、基本から順番に身につけていこう。さあ、今日も愛と感謝を胸に。バイバイ。


松永 修 – MUSICおさむ

松永 修|MUSICおさむ|国家公務員|キャリコン|作家・メディアクリエイター/音楽クリエイター(シンガーソングライター)|DTM作編曲

関連記事

最新記事
会員限定記事
おすすめ記事
PAGE TOP
ログイン 会員登録
会員登録