編集済み 3 数か月前 によって ExtremeHow 編集チーム
Gitロールバックリバートウィンドウズマックリナックスコマンドラインソースコントロールバージョン管理トラブルシューティング開発
翻訳が更新されました 3 数か月前
今日の世界では、ソフトウェア開発は同じコードベースで複数の人が共同で作業することがよくあります。この共同作業を効果的に管理するために、開発者はGitのようなバージョン管理システムを使用します。Gitは、コードの変更を追跡したり、他の人と作業したり、プロジェクトの異なるバージョンを管理するために役立つ、強力かつ広く利用されているバージョン管理システムです。開発者が頻繁に行う必要がある重要な作業の1つは、変更を元に戻すことです。Gitでの変更の元に戻しは、問題が発生した場合や元の変更が不要になった場合に、コードへの変更を元に戻す方法です。
Gitでの変更の元に戻しの詳細に入る前に、Gitとは何か、なぜ重要なのかを理解することが重要です。Gitは、リンウス・トーバルズによって2005年に作成されたオープンソースの分散型バージョン管理システムです。これにより、複数の開発者が同時にプロジェクトに取り組むことができ、お互いの作業を上書きすることがありません。
Gitは、コードへのすべての変更を記録しているため、プロジェクトの完全な履歴を提供します。この履歴は、開発者がプロジェクトの以前の状態を確認し、どの変更が行われたのか、誰が行ったのかを理解するのに役立ちます。最近の変更でバグやエラーが発生した場合、Gitの履歴により、その変更を識別して元に戻すことが可能です。
ソフトウェア開発では、次のようなシナリオでGitの変更を元に戻す必要がある場合があります:
git add
を使用)に、それを取り消したいとき。Gitは、開発プロセスの異なる段階で変更を元に戻すためのいくつかのコマンドを提供しています。これらのコマンドを見て、それらの使い方を学びましょう:
git checkout
コマンドはブランチを切り替えるために使用されますが、作業ディレクトリの変更を元に戻すのにも便利です。ファイルに対して行った変更を消去したい場合、次のコマンドを使用します:
git checkout -- <file-name>
このコマンドは、指定されたファイルを最後のコミット状態に戻します。変更が不要な場合や、一時的な変更を削除する必要がある場合に役立ちます。
git revert
コマンドは、以前のコミットによって行われた変更を取り消す新しいコミットを作成するために使用されます。この方法は、既存のコミットを削除しないため、他の方法よりも安全です。代わりに、指定されたコミットを逆転させる新しいコミットを追加します。
git revert <commit-hash>
このコマンドは、変更が共有リポジトリにプッシュされた場合に特に役立ちます。コミットを取り消すことで、変更の逆転を行う新しいコミットが作成されます。
git reset
コマンドは多用途であり、変更をステージングエリアまたは作業ディレクトリに戻すことができます。以下はその使用法の説明です:
git reset <commit-hash>
このコマンドは、現在のブランチを指定されたコミットに移動します。デフォルトでは、インデックス(ステージングエリア)とヘッド(ブランチが現在指している場所)に影響を与えますが、作業ディレクトリには影響しません。
git reset HEAD <file-name>
ファイルをステージングエリアに追加し、アンステージしたい場合、このコマンドを使用します。これにより、作業ディレクトリ内のファイルがリセットされ、インデックスから削除されます。
git reset --hard <commit-hash>
このコマンドは、現在のヘッドを指定されたコミットにリセットするだけでなく、そのコミットと一致するように作業ディレクトリを更新します。このコミット以降に行われたすべての変更は、ステージングエリアと作業ディレクトリの両方で失われます。このコマンドは簡単に元に戻せないため、慎重に使用してください。
git clean
コマンドは、作業ディレクトリから未追跡ファイルを削除するために使用されます。これらは作成または変更されたが、まだコミットされていないファイルです。
git clean -f
このコマンドは、未追跡ファイルを削除します。ディレクトリも削除したい場合は、次のコマンドを使用します:
git clean -fd
たとえば、example.txt
というファイルを変更し、その変更を取り消したくなったとします。次のコマンドを使用して変更を元に戻すことができます:
git checkout -- example.txt
このコマンドは、example.txt
を最後のコミットされた状態に戻します。
誤ってコミットを行い、その影響を元に戻したい場合、git revert
を使用できます。コミットハッシュがabc1234
であるとします:
git revert abc1234
このコマンドは、コミットabc1234
によって行われた変更を逆転させる新しいコミットを作成します。これは、共有リポジトリで作業している場合に特に役立ちます。
data.csv
というファイルをステージングし、それをアンステージしたい場合は、次のコマンドを使用します:
git reset HEAD data.csv
このコマンドは、data.csv
をステージングエリアから削除し、作業ディレクトリに変更を残します。
現在のブランチをハッシュdef5678
で識別される前のコミットにリセットし、その後のすべての変更をステージングエリアと作業ディレクトリから削除するには、次のコマンドを使用します:
git reset --hard def5678
重要: この方法はdef5678
コミット後の変更を永久に削除するため、慎重に使用してください。
Gitで変更を元に戻すことは、開発者にとって重要なスキルです。最近のコミットを元に戻す、変更のステージングを解除する、ファイルへの変更を逆転させる必要がある場合でも、Gitにはコマンドを提供しています。git checkout
、git revert
、git reset
、git clean
などのコマンドを理解することで、ミスや不要な変更に対処するのが簡単になります。
特に作業ディレクトリやコミット履歴を永久に変更するコマンドは、注意して使用することが重要です。単純な取り消しやより複雑な元に戻しプロセスが必要かどうか、常に状況に応じて考慮してください。
Gitに慣れるにつれて、バージョン管理や効率的な共同作業の能力が、ソフトウェア開発には欠かせないツールであることがわかるでしょう。変更を元に戻すことは、Gitが開発者のツールキットの不可欠な部分となる多くの能力の1つに過ぎません。
記事の内容に誤りがある場合, あなたは