ウィンドウズマックソフトウェア設定セキュリティ生産性リナックスAndroidパフォーマンス設定Apple すべて

Gitで変更をアーカイブする方法

編集済み 2 数週間前 によって ExtremeHow 編集チーム

Gitスタッシュウィンドウズマックリナックスコマンドライン開発バージョン管理ソースコントロールワークフロー生産性

Gitで変更をアーカイブする方法

翻訳が更新されました 2 数週間前

Gitは、ソフトウェア開発の世界で最も広く使用されているバージョン管理システムの1つです。2005年にLinuxカーネルの開発のためにLinus Torvaldsによって作成されました。それ以来、あらゆる規模のソフトウェアプロジェクトで、開発チームによって、時には1人の開発者によっても使用されています。Gitは、コードのバージョンを追跡し、複数の開発者とコラボレーションし、必要に応じて常にソフトウェアの以前のバージョンに戻ることができるようにするのに役立ちます。

Gitで管理されているプロジェクトで作業しているとき、ブランチを切り替える必要がある場合があります。たとえば、新しい機能に取り組んでいる最中に、すぐに修正する必要のある重大なバグレポートが突然発生することがあります。そのような場合、作業中の機能の進捗を失うことなく、コンテキストを切り替えてバグ修正に取り組むことをお勧めします。ここでGit Stashが便利になります。

Git Stashの理解

Git stashは、開発者が変更をリポジトリにコミットせずに一時的に保存できる強力な機能です。作成した変更を「棚に置く」ことで、新しいブランチをチェックアウトしても、まだ他の人に見せる準備ができていないかもしれない新機能をコミットしないで済みます。準備が整ったら、これらの変更を作業コピーや別のブランチに適用できます。

git stashコマンドを実行すると、変更がスタックに保存されます。このスタックには複数のスタッシュを含めることができ、後でリストされたスタッシュのいずれかを適用できます。単一のスタッシュは、次の要素の組み合わせで構成されています:

変更がスタッシュされると、作業ディレクトリがクリーンになり、ブランチを切り替えたりコードをコンパイルしたり、他に必要な作業を行ったりできます。そのタスクを完了した後、スタッシュをポップまたは適用して元の作業に戻ることができます。

基本的なGit Stashコマンド

Gitでスタッシュを使い始めるには、いくつかの基本的なコマンドに慣れる必要があります。ここでは最も重要なコマンドを見てみましょう:

1. 変更資金を安全に保つ

変更を保存するには、次のコマンドを使用します:

git stash push

これによりローカルの変更が保存され、作業ディレクトリがHEADコミットと一致するように戻されます。その変更を一度も行ったことがないかのようです。

2. メッセージを隠す

隠した変更を簡単に識別できるように、メッセージを含めることがしばしば役立ちます:

git stash push -m "your stash message"

このメッセージは、ラインレベルの変更を参照せずに、このスタッシュにどのような変更があるかを思い出すのに役立ちます。

3. 保存されたスタッシュのリスト

保存したすべてのコレクションのリストを確認するには:

git stash list

このコマンドは、保存したすべてのスタッシュと関連するメッセージをリスト表示します。

4. スタッシュを適用する

最新のスタッシュを再適用するには:

git stash apply

このコマンドは、最新のスタッシュを現在の作業ディレクトリに適用しますが、スタッシュリストから削除しません。

5. 特定のスタッシュを適用する

特定のスタッシュを適用したい場合:

git stash apply stash@{n}

stash@{n}を、適用したい特定のスタッシュに置き換えます。これはgit stash listの出力から識別できます。

6. スタッシュのポッピング

最新のスタッシュを適用してすぐに削除するには:

git stash pop

これは適用コマンドと似ていますが、適用されたスタッシュをリストから削除します。

7. スタッシュを削除する

特定のスタッシュを削除したい場合(適用せずに):

git stash drop stash@{n}

これにより、指定されたスタッシュが破棄されます。

8. すべての秘密のストレージをクリアする

すべてのスタッシュを削除したい場合、コマンドは:

git stash clear

このコマンドは保存された変更をすべて永久に破棄するため、注意して使用してください。

ワークフローの例

ブランチfeature-xyzで新機能を開発しているとします。作業コピーにいくつかの変更を加えています。突然、メインブランチで重大なバグを修正する必要があります。

Git Stashの使用方法のステップバイステップガイド

  1. 現在の変更を表示:スタッシュしたい変更がまだコミットされていないことを確認します。現在のステータスを確認するには:
    git status
  2. 変更を保護:変更を説明メッセージと共に保護します:
    git stash push -m "Saving work on feature-xyz"
  3. ブランチを切り替え:任意のブランチに切り替えます:
    git checkout main
  4. バグを修正:バグを修正するために必要な変更を加えます:
    git commit -a -m "Fixed critical bug"
  5. 機能ブランチに戻る:バグを修正したら、機能ブランチに戻ります:
    git checkout feature-xyz
  6. 保存した変更を適用:スタッシュから作業を復元します:
    git stash pop

    もし衝突があれば、解決して作業を続けます。

高度な使用例とフラグ

Git Stashは、より高度なオプションを提供して柔軟性を持たせています:

1. 追跡されていないファイルのアーカイブ

デフォルトでは、git stash pushは追跡ファイルへの変更のみをスタッシュします。追跡されていないファイルを含めるには:

git stash push -u

これにより、追跡ファイルと追跡されていないファイルの両方がアーカイブされます。

2. 無視されたファイルを隠す

.gitignoreで明示的に除外されたファイル(無視されたファイル)もスタッシュしたい場合:

git stash push --all

3. ファイルの一部を隠す

ファイルの一部を選択的にアーカイブするには:

git stash -p

このコマンドは対話的で、スタッシュする特定の部分を選択できます。

4. インデックスを使用したスタッシュの実装

ステージングされた変更(インデックス内の変更)を含む保存された変更を再適用するには:

git stash apply --index

これにより、インデックスに競合する変更がある場合、競合が発生する可能性があります。

スタッシュの競合を理解する

スタッシュの適用と解除は一般的に簡単ですが、更新されたコードベースにスタッシュを適用するときに競合が発生することがあります。競合が発生すると、Gitはそれをマージ競合のようにマークします。影響を受けたファイルを編集して競合を手動で解決し、以下のコマンドで解決済みとしてマークする必要があります:

git add <file>

競合を解決したら、作業を続け、最終的に変更を提出できます。

Git Stashのベストプラクティス

Git Stashをより簡単かつ効果的に使用するためのいくつかのヒント:

結論

Git stashは、特にコミットしていない作業を保存し、リファレンスを一時的に変更するのに役立つ、開発者のアーセナルにおいて柔軟性のあるツールです。Git stashの使用方法を十分に理解することで、異なるタスク間の変更を管理しやすくなり、ワークフローの効率性と柔軟性を向上させることができます。

未完の作業を保存したり、重要なバグに集中したりするなど、Git stashの機能を適切にワークフローに組み込むことで、コードの変更処理が簡単で管理可能になります。Git stashに慣れてくると、それが開発ツールキットの不可欠な部分になることが分かるでしょう。

記事の内容に誤りがある場合, あなたは


コメント