0

私は Git と Magit から始めているので、私の質問がどちらに固有のものかわかりません。

変更をファイルに保存した後、コミットしたくない場合があります。単純に最後のコミットに戻りたい場合です。

私はEmacs / Magitからこれをやろうとしていますが、私がしていることは正気ではありません:

  1. 変更をスタッシュします (そうしないと、Magit はコミットされていない/スタッシュされていない変更について不平を言います)
  2. 最後のコミットよりも古いコミットをチェックアウトします(単に最後のものを試してみると、Emacs / magitは変更をそこに残すだけです。ファイルは変更されません)
  3. 私は隠し場所を捨てる
  4. 最後のコミットをチェックアウトします

これには多くのキーを押す必要があり、完全に狂っています。

完全に明らかな何かが欠けていることは確かですが、単に何が見つからないので、最後に保存された変更をEmacs / Magitから効率的に削除し、最後のコミットに戻るだけですか?

4

2 に答える 2

1

Magitkでは、物をドロップすることです。したがって、変更をドロップしたい場合は、元に戻したい変更に進み、それを使用kするだけです。

X作業ツリーのすべての変更を元に戻すために使用することもできます (注意してください。これは元に戻せません)。

于 2013-03-26T19:37:54.793 に答える
1

についてはあまり詳しくありませんがEmacs / Magit、シェルから実行できる同等の git コマンドを教えてもらえます。

私があなたの質問を正しく理解していれば、現在の作業ツリーで変更されたすべてのファイルを元に戻す簡単な方法を探していると思います。そうでない場合は、次の手順を実行しないでください ;)

  • インデックスに触れずに、ファイルの作業ツリー内のローカルな変更を破棄したい場合は、次のようにします。

    git checkout -- <FILE>
    
  • インデックスに触れずにすべてのローカル変更を破棄したい場合は、リポジトリのルートからこれを実行できます。

    git checkout -- .
    
  • インデックスと作業ツリーのすべての変更を破棄し、作業ツリーとインデックスをチェックアウト直後の状態に移動する場合は、git reset --hardコマンドを使用できます。(作業ツリーのコミットされていない変更や、インデックス/ステージング領域のコミットされていない変更も失われることに注意してください)。

    git reset --hard HEAD
    

    上記HEADのコマンドの はオプションです。

于 2013-03-26T19:06:49.347 に答える