1. ホーム
  2. git

[解決済み] gitです。ブランチを切り替えて、コミットせずに変更を無視する

2022-03-14 01:14:13

質問

gitブランチで作業をしていて、変更をコミットする準備ができたので、有用なコミットメッセージを添えてコミットしました。その後、不注意にも、残す価値のないマイナーな変更をコードに加えました。今、私はブランチを変更したいのですが、gitは私に与えています。

エラーが発生しました。ローカルで "X" に変更があるため、ブランチを切り替えることができません。

コミットせずにブランチを変更することはできますか?可能な場合、どのように設定すればよいですか?そうでない場合、どうすればこの問題から解放されますか?私は、コミットせずにマイナーチェンジを無視して、ブランチの変更だけをしたいのです。

どのように解決するのですか?

ブランチを変更するには、クリーンな状態が必要です。ブランチのチェックアウトは、「ダーティなファイル」に影響を与えない場合にのみ許可されます (たとえば チャールズ・ベイリー がコメントで述べています)。

それ以外の場合は、どちらかです。

  • へそくり 現在の小銭、または
  • reset --hard HEAD (これらのマイナーチェンジを失っても構わない場合) または
  • checkout -f (ブランチ切り替えの際、インデックスや作業ツリーがHEADと異なっていても続行する。これは、ローカルでの変更を捨てるために使用します。)

あるいは、もっと最近。

インデックスや作業ツリーがHEADと異なっていても進める。
インデックス、作業ツリーともに切替先と一致するように復元されます。

とは異なります。 git switch -m <branch-name> を実行すると、現在のブランチ、作業ツリーの内容、そして新しいブランチの間で三方向のマージが行われます。この方法では、進行中の作業が失われることはありません。