2

私のコミットはすでにGithubにプッシュされています。

A> B> C>D>E-ヘッド

Bに戻したいので、

git reset --hard <B:Hash>

今、それは次のようになります

A>B-ヘッド

したがって、を使用してサーバーにプッシュするとgit push --force、リポジトリ内のC、D、Eが失われます

ファイルを元に戻して、A> B> C> D>E>Fのような最後のリビジョンになるようにコミットするにはどうすればよいですか。

F =元に戻しました:B

git commitコミットするファイルがないと言っていたので使えません。

4

1 に答える 1

4

これを試して:

git checkout B
git reset --soft E
git commit -m 'Reverted to B'

checkoutコマンドは、コミットBに一致するように作業ツリーとインデックスを変更します。リセットする--softと、作業ツリーまたはインデックスに影響を与えることなく、現在のブランチが指すコミットが変更されます。つまり、リセットコマンドの後、インデックスはBコミットとまったく同じ状態になります。


を使用することもできますgit revert B..E。これは、元に戻されたコミットごとに1つの新しいコミットを作成することを除いて、同じことを行います。1回のコミットで復帰を実行する場合は、-nオプション(git revert -n B..E)を追加するだけで、Gitが復帰を作業ディレクトリとインデックスに適用します。結果をコミットして、復帰を終了します。

于 2011-08-31T09:01:57.450 に答える