web-dev-qa-db-ja.com

gitのステージング領域にコミットを移動するにはどうしますか?

コミットをステージング領域に移動する場合-コミットを解除して、そこにあったすべての変更をステージング領域に移動します(ブランチをコミット前の状態に効果的に配置します)-どうやってやるの?それともできないことですか?

私が最も近い方法は、コミットで変更されたすべてのファイルを別の場所にコピーし、ステージング領域に移動しようとしているコミットの前にブランチをコミットにリセットすることですコピーしたファイルをリポジトリに戻し、ステージング領域に追加します。それは動作しますが、それは正確にニースのソリューションではありません。私ができるようにしたいのは、コミットを取り消して、その変更をステージング領域に移動することです。できますか?もしそうなら、どのように?

116
git reset --soft HEAD^

これにより、インデックスがHEAD^(以前のコミット)にリセットされますが、ステージング領域には変更が残ります。

git-reset ドキュメントには、いくつかの 便利な図 があります

Windowsを使用している場合は、次の形式を使用する必要があります。

git reset --soft HEAD~1
207
Abizern

簡単な方法

  1. ステージング領域にコミットされたファイル

    git reset --soft HEAD^1

  2. UnSatgeへのステージング:(「git reset HEAD ...」を使用してステージングを解除します)

    git reset HEAD git commands.txt or git reset HEAD *ds.txt

ここで、*->すべてのファイルは、ステージングを解除するためにds.txtで終わります。

明確にするために以下の写真を参照してください。

enter image description here