Preview ng leksyon

上級者向けツール:rebase、stash、cherry-pick、タグ

Gitの基本を理解している人と、自信を持って使いこなせる人を分ける上級ツールを学びましょう。rebaseをmergeの代替として、歴史をクリーンにするケースと複雑化させるケースを解説します。作業中の変更を一時的に保存するstash、特定のコミットを選択的に取り込むcherry-pick、リリースをマークするタグの使い方を習得します。

git rebase git stash git cherry-pick
Ano ang matututunan mo sa leksyong ito
  • 変更を失うことなく、タスク間を切り替えるためのgit stashの使用方法を習得できます。
  • rebaseとmergeの違いを理解し、状況に応じて適切に使い分けられるようになります。
  • インタラクティブなrebaseを使用したコミット履歴の編集方法と、リリースバージョンのタグ付けを習得します。

Simula ng leksyon

問題: 作業中の変更を一時保存する方法

  • 緊急のバグ修正が現在の作業を中断
  • 未完成のコードはコミットできない
  • Git stashが変更を一時保存
  • 追跡対象ファイルも未追跡ファイルも保存可能
  • ワーキングディレクトリをクリーンな状態に戻す

新しい機能の開発中に、突然のバグ修正が入る場面を想像してください。作業を途中で止めたくはないけれど、未完成のコードをコミットするわけにもいきません。そんな時のために、git stashというデジタルな一時保存機能があります。ゲームの一時停止ボタンのようなもので、現在の進捗を保存しておき、別の作業に取りかかることができます。戻ってきた時には、-uフラグを忘れなければ未追跡ファイルも含め、すべてが保存したままの状態で再開できます。これで、複数のタスクを同時に頭に入れておく必要はありません。

変更の保存と確認

  • git stash save — 変更をスタッシュに保存
  • git stash list — 保存されたスタッシュの一覧を表示
  • 各スタッシュに一意のIDが割り当てられる
  • stash@{0} — 直近に保存された変更
  • スタッシュはワーキングディレクトリの状態を保存

実際にgit stashをどのように使うか見ていきましょう。git stash saveコマンドは、ワーキングディレクトリとステージングエリアの変更をすべて保存し、クリーンな状態に戻します。保存した変更は特別な保管場所に格納され、git stash listで確認できます。stash@{0}のような一意のIDで管理され、タスク間を素早く切り替えたい時に便利です。作業の進捗を失うことなく、効率的に作業を進められます。

# 現在の変更を保存
# ログインフォームの新機能を一時保存
git stash save "WIP: ログインフォームの新機能"

# 保存されたスタッシュの一覧を確認
git stash list

# 直近のスタッシュの内容を確認
git stash show -p

一時保存した変更の復元

  • git stash pop — 最後のスタッシュを適用して削除
  • git stash apply — スタッシュを削除せずに適用
  • コード変更時にコンフリクトが発生する可能性あり
  • コンフリクトは手動で解決する必要あり
  • stash@{n} — 特定のスタッシュを指定

一時的に保留にしていた作業に戻る際は、2つの選択肢があります。git stash pop は最後に保存した変更を適用し、スタッシュリストから削除します。変更を確認したい場合や複数回適用したい場合は、git stash apply を使用してください。この場合、変更はスタッシュに残ったままになります。重要な点として、スタッシュを保存してからコードに変更があった場合、コンフリクトが発生する可能性があります。その場合、Gitが問題を通知しますので、手動でコンフリクトを解決する必要があります。

# 最後に保存したスタッシュを復元
git stash pop

# または削除せずに適用
git stash apply

# インデックスを指定して特定のスタッシュを適用
git stash apply stash@{1}

Buong leksyon ay para sa subscription

25 pang slide sa buong bersyon.

Mabubuksan ang video, lahat ng slide, tala, pagsusulit, AI tutor, at interview pagkatapos mag-sign in at mag-subscribe.

Mag-sign in o magparehistro Mag-subscribe

Nilalaman ng leksyon

  1. 問題: 作業中の変更を一時保存する方法
  2. 変更の保存と確認
  3. 一時保存した変更の復元
  4. スタッシュの落とし穴
  5. ブランチのマージの仕組み
  6. Rebase: コミット履歴を書き換える
  7. 使い分けの実践的シナリオ
  8. Rebaseの危険性:起こりうる問題点
  9. リベースとは?その目的
  10. リベースの実行手順
  11. リベース時のコンフリクト解決
  12. インタラクティブrebase:コミット履歴のエディタ
  13. インタラクティブrebaseの主要コマンド
  14. 実践:理想的な履歴を作成する
  15. 注意:公開済み履歴の変更について
  16. 共有ブランチでrebaseをしてはいけない理由
  17. 失敗したrebaseからの復旧方法
  18. 安全な履歴修正
  19. Gitのcherry-pickが必要な理由
  20. git cherry-pickの使い方
  21. cherry-pick vs merge vs rebase:使い分けのポイント
  22. Gitタグ:重要なコミットのためのしおり
  23. アノテーション付きタグと軽量タグの作成
  24. リモートリポジトリへのタグの公開
  25. シナリオ:開発中の緊急ホットフィックス対応
  26. rebaseとcherry-pickによる変更の統合
  27. よくあるミスとその回避方法
  28. まとめ:Gitマスターへの道

Mga artikulo tungkol sa araling ito

Lahat ng leksyon ng kurso

  1. はじめに:ゼロから始めるGit - 自信を持って使える開発者を目指して
  2. Gitはなぜ必要なのか?~採用で求められるスキル~
  3. インストールとセットアップ:Gitの初回起動準備
  4. 最初のリポジトリ: init、add、commit、そしてインデックスの魔法
  5. Git履歴の読み方: log, diff, showと過去の履歴を辿る
  6. ブランチ: コードの並行現実
  7. ミスをなかったことに:restore、reset、revert ─ 正しい使い方と危険な落とし穴
  8. GitHubとリモートリポジトリ: クラウドでのコード管理
  9. チームワーク:フォーク、フィーチャーブランチ、プルリクエスト
  10. マージコンフリクト:慌てずに理解して解決する
  11. 実践的なチーム開発におけるGitワークフロー:最適な選択方法
  12. 上級者向けツール:rebase、stash、cherry-pick、タグ
  13. 最終プロジェクト:実際のチーム開発をシミュレートする