Git をマスターする: ステージングされていない変更を管理する
バージョン管理は開発者にとって不可欠であり、Git はこの分野で最も広く使用されているツールの 1 つです。一般的なタスクの 1 つは、作業ディレクトリをクリーンな状態に保ち、不要な変更を避けるために、ステージングされていない変更を破棄することです。
これらの変更を効率的に破棄する方法を理解すると、プロジェクト管理がよりスムーズになり、コードの整合性を維持するのに役立ちます。このガイドでは、Git リポジトリ内のステージングされていない変更を安全に元に戻す手順を説明します。
指示 | 説明 |
---|---|
git checkout -- <file> | 特定のファイルの変更を最後にコミットされた状態に戻します。 |
git checkout -- . | 作業ディレクトリ内のすべてのファイルの変更を、最後にコミットされた状態に戻します。 |
git clean -f | 追跡されていないファイルを作業ディレクトリから削除します。 |
git clean -fd | 追跡されていないファイルとディレクトリを作業ディレクトリから削除します。 |
git clean -fx | 追跡されていないファイルと無視されたファイルを作業ディレクトリから削除します。 |
subprocess.run(command, shell=True) | Python スクリプト内からシェル コマンドを実行します。 |
変更を破棄するためのスクリプト ソリューションを理解する
提供されるスクリプトは、Git リポジトリ内のステージングされていない変更を効率的に管理することを目的としています。の git checkout -- <file> コマンドは特定のファイルの変更を最後にコミットされた状態に戻しますが、 git checkout -- . すべてのファイルの変更を元に戻します。の git clean -f コマンドは追跡されていないファイルを削除し、クリーンな作業ディレクトリを確保します。より徹底した洗浄を行うために、 git clean -fd 追跡されていないファイルとディレクトリの両方を削除します。 git clean -fx これを拡張して、無視されたファイルも含めます。
Bash スクリプトはこれらのコマンドを自動化し、ステージングされていない変更を破棄し、作業ディレクトリを 1 ステップでクリーンアップします。 Python スクリプトは、以下を使用して同じ目標を達成します。 subprocess.run(command, shell=True) この関数を使用すると、スクリプト内からシェル コマンドを実行できます。このスクリプトにより、関連するすべての Git clean コマンドが実行されるようになり、クリーンな作業ディレクトリが維持され、スムーズなバージョン管理プロセスが促進されます。
Git コマンドを使用してステージングされていない変更を破棄する
コマンドラインインターフェース(CLI)
# To discard changes in a specific file:
git checkout -- <file>
# To discard changes in all files:
git checkout -- .
# To remove untracked files:
git clean -f
# To remove untracked directories:
git clean -fd
# To remove ignored files as well:
git clean -fx
Git スクリプトを使用してステージングされていない変更を元に戻す
Bash スクリプト
#!/bin/bash
# Revert all unstaged changes in the repository
git checkout -- .
# Clean all untracked files and directories
git clean -fd
# Optionally, remove ignored files too
git clean -fx
echo "Unstaged changes have been discarded."
Python スクリプトを使用して変更を破棄する
サブプロセスモジュールを備えた Python
import subprocess
def discard_unstaged_changes():
commands = [
"git checkout -- .",
"git clean -fd",
"git clean -fx",
]
for command in commands:
subprocess.run(command, shell=True)
if __name__ == "__main__":
discard_unstaged_changes()
Git でステージングされていない変更を管理するための追加の戦略
もう 1 つの便利な Git 機能は、 git stash このコマンドは、作業ディレクトリに加えた変更を一時的に保存するため、変更をコミットせずに別の作業を行うことができます。後で、隠した変更を再適用できます。 git stash apply またはそれらを削除します git stash drop。これは、ブランチをすぐに切り替える必要があるが、未完了の作業が進行中の場合に特に便利です。
もう 1 つの便利なコマンドは、 git reset、インデックスへの変更を元に戻します。使用する git reset HEAD <file>を使用すると、作業ディレクトリに変更を保持したまま、ファイルのステージングを解除できます。このコマンドは、変更を失わずにコミットする内容を調整するのに役立ちます。両方 git stash そして git reset Git での作業ディレクトリとステージング領域の管理をより柔軟に制御できるようになります。
Git でのステージングされていない変更の破棄に関するよくある質問
- Git でステージングされていない変更をすべて破棄するにはどうすればよいですか?
- 使用できます git checkout -- . 作業ディレクトリ内のステージングされていないすべての変更を元に戻します。
- どういうことですか git clean -fd する?
- git clean -fd 追跡されていないファイルとディレクトリを作業ディレクトリから削除します。
- 変更をコミットせずに一時的に保存するにはどうすればよいですか?
- 使用 git stash 変更を一時的に保存します。後で再適用できます git stash apply。
- 追跡されていないファイルを作業ディレクトリから削除するにはどうすればよいですか?
- 使用できます git clean -f 追跡されていないファイルを削除します。
- 目的は何ですか git reset?
- git reset インデックスへの変更を元に戻すので、作業ディレクトリを変更せずに変更をステージング解除できます。
- 特定のファイルの変更を破棄するにはどうすればよいですか?
- 使用 git checkout -- <file> 特定のファイル内の変更を破棄します。
- 追跡されていないファイルとともに無視されたファイルを削除するにはどうすればよいですか?
- 使用 git clean -fx 無視されたファイルと追跡されていないファイルの両方を作業ディレクトリから削除します。
- 元に戻せますか git clean 手術?
- 一度 git clean を実行すると、削除されたファイルは完全に削除されるため復元できません。
Git でのステージングされていない変更の管理に関する最終的な考え方
Git でステージングされていない変更を効果的に破棄することは、プロジェクトの整合性を維持するために不可欠です。のようなコマンド git checkout、 git clean、 そして git stash 変更を元に戻したり、一時的に保存したりするためのさまざまな方法を提供し、ワークフローに柔軟性をもたらします。これらのコマンドをマスターすると、クリーンな作業ディレクトリを維持し、不要な変更がコミットされるのを防ぐことができます。これらのツールを利用すると、バージョン管理とプロジェクト管理をより適切に行うことができます。