Git のマスターブランチと同じになるようにファイルをリセット

Ashok Chapagai 2023年9月13日
  1. Git でファイルを master ブランチにリセットする
  2. Git で指定したコミットの状態にファイルをリセットする
  3. 結論
Git のマスターブランチと同じになるようにファイルをリセット

仮に、master ブランチに重要なファイルがあり、編集されるべきではありませんでしたが、残念ながら dev ブランチで既に編集され、複数回コミットされています。今、そのファイルの変更を破棄し、master ブランチと同じ状態にすることを望んでいます。手間をかけずにこれを実現するためには、簡単な方法があります。

Git でファイルを master ブランチにリセットする

Git では、git checkout コマンドは、ブランチの切り替え、新しいブランチの作成、ファイルの復元など、さまざまなタスクに使用される多目的なツールです。

git checkout を使用してファイルを master ブランチにリセットすると、現在のブランチのファイルの内容を master ブランチの内容に置き換えることになります。

Git checkout の基本的な理解ができたので、特定のファイルを master ブランチにリセットする手順を進めていきましょう。

ステップ 1: ターミナルを開く

まず、ターミナルまたはコマンドプロンプトを開いてください。ファイルのリセットには Git コマンドを使用するため、ターミナルが必要です。

ステップ 2: リポジトリに移動する

cd コマンドを使用して Git リポジトリのディレクトリに移動します。例:

cd /path/to/your/repo

/path/to/your/repo の部分を実際の Git リポジトリのパスに置き換えてください。

ステップ 3: 現在のブランチを確認する

リセットを行う前に、リセットするファイルが存在するブランチ上にいることを確認してください。以下のコマンドを使用して現在のブランチを確認できます:

git branch

このコマンドは、現在チェックアウトされているブランチの前にアスタリスク (*) が付いて表示されるブランチのリストが表示されます。

ステップ 4: Git Checkout リセットを実行する

さて、git checkout コマンドを使用してファイルを master ブランチにリセットしましょう。以下のコマンドを使用します:

git checkout master -- file1 file2 ...

file1file2 などの部分をリセットしたいファイルの名前に置き換えてください。複数のファイルを指定する場合は、スペースでファイル名を区切ります。

例えば、file1.txtfile2.txt という名前の2つのファイルをリセットしたい場合、以下のコマンドになります:

git checkout master -- file1.txt file2.txt

git checkout コマンドの詳細

  • git checkout: これは、ブランチの切り替えやファイルのリセットなど、さまざまな操作に使用される Git コマンドです。
  • master: これはファイルを取得するソースブランチを指定します。この場合は、master ブランチです。
  • --: この二重ハイフンは、ブランチやコミットをファイルパスと区別するために使用されます。続く項目がファイルパスであることを Git に伝えます。

ステップ 5: ステータスを確認する

リセット後は、以下のコマンドを使用して作業ディレクトリのステータスを確認することをおすすめします:

git status

これにより、master ブランチと比較して、どのファイルが変更され、追加され、削除されたかが表示されます。

ステップ 6: 変更をコミットする

変更に満足し、コミットする準備ができたら、以下のコマンドを使用します:

git add .
git commit -m "Your commit message"

"変更内容の説明" の部分を変更の内容を説明する有意義なメッセージに置き換えてください。

Git で指定したコミットの状態にファイルをリセットする

Git では、git reset コマンドを使用して現在のブランチを特定のコミットなどの指定した状態にリセットすることができます。

特定のコミットにファイルをリセットするために git reset を使用すると、そのコミットにブランチのポインタを移動させ、必要に応じて作業ディレクトリやステージングエリア(インデックス)も更新します。

Git で特定のコミットにファイルをリセットする手順を説明します。

ステップ 1: ターミナルを開く

まず、ターミナルまたはコマンドプロンプトを開いてください。Git コマンドを使用するため、ターミナルが必要です。

ステップ 2: リポジトリに移動する

cd コマンドを使用して Git リポジトリのディレクトリに移動します。例:

cd /path/to/your/repo

/path/to/your/repo の部分を実際の Git リポジトリのパスに置き換えてください。

ステップ 3: 対象のコミットを特定する

ファイルをリセットするために特定のコミットを特定する必要があります。git log を使用してコミット履歴を表示し、コミットハッシュを見つけることができます。例:

git log

このコマンドはコミット履歴を表示し、各コミットは一意のハッシュ(長い英数字の文字列)で識別されます。

ステップ 4: Git Reset を実行する

さて、git reset コマンドを使用して特定のファイルを対象のコミットにリセットしましょう。基本的な構文は次のとおりです:

git reset <commit> -- <file1> <file2> ...

<commit> をリセットしたいコミットハッシュ、ブランチ名、またはタグ名で置き換えてください。<file1><file2> などは、リセットしたいファイルの名前で置き換えます。複数のファイルを指定する場合は、名前をスペースで区切って指定します。

例えば、file1.txtfile2.txt という名前の2つのファイルをハッシュ値が abc123 のコミットにリセットしたい場合、以下のコマンドを実行します。

git reset abc123 -- file1.txt file2.txt

git reset コマンドの詳細

  • git reset:これは、ブランチやファイルをリセットするために使用する Git コマンドです。
  • <commit>:このプレースホルダを、ファイルをリセットしたいコミットハッシュ、ブランチ名、またはタグ名で置き換えます。
  • --:この二重のハイフンは、コミットとファイルパスを区切るために使用されます。これにより、Git に、後続の項目がブランチやコミットではなくファイルパスであることが伝えられます。

ステップ 5: ステータスを確認する

リセット後、以下のコマンドを使用して作業ディレクトリのステータスを確認することが重要です。

git status

これにより、リセットされたコミットと比較して、変更された、追加された、または削除されたファイルが表示されます。

ステップ 6: 変更をコミットする

リセット内容にご満足いただけたら、以下のコマンドを使用して変更をコミットします。

git add .
git commit -m "Your commit message"

"変更内容のコミットメッセージ" を、リセットによって導入された変更の内容を説明する意味のあるメッセージに置き換えてください。

代替手法: git checkout を利用する

同じタスクを達成する別の方法として、以下のコマンドも利用できます。

git checkout <commit_hash> <filename>

これも同じ結果を得るのに役立ちます。

結論

Git でファイルを master ブランチにリセットすることは、共同作業プロジェクトで働くすべての開発者にとって基本的なスキルです。

git checkout コマンドを使用することで、簡単に master ブランチの最新の変更と作業を同期することができます。

このガイドに記載されている手順に従うことで、特定のファイルを自信を持ってリセットし、プロジェクトが一貫性を保ち最新の状態に保てるようにすることができます。

リセットするための git reset のようなファイルをリセットするためのさまざまなメカニズムを Git は提供しています。

各方法にはそれぞれのユースケースがありますので、自分のニーズに最も適した方法を選択してください。

ミスの修正や master ブランチからの変更を組み込む場合、Git の柔軟性によってバージョン管理のワークフローは効率的で信頼性の高いものが維持されます。

著者: Ashok Chapagai
Ashok Chapagai avatar Ashok Chapagai avatar

Ashok is an avid learner and senior software engineer with a keen interest in cyber security. He loves articulating his experience with words to wider audience.

LinkedIn GitHub

関連記事 - Git Reset