4

Git リポジトリと Github にリモートがあります。(Githubにあるという事実を編集しないでください。関連性があり、答えに違いをもたらします。ありがとう。)

マスター ブランチを 25 コミット前の状態に復元したいと考えています。

使いたくないし、履歴を一掃しgit --reset hard ...たくないからです。git push -f

Gitに効果的に伝える方法はありますか...

「当時存在していなかったファイルを削除することを含め、作業コピーのすべてを、ここに戻ってきた以前のコミットとまったく同じようにしてください。」

...そしてその状態をコミットし、それをリモートにプッシュしますか?


やってみgit revertたけどどうなるかなぁ…

$ git revert --no-commit d3289a7ab82fd76386d99bdd2c5e6496ecc62529..
error: Commit e88336ec528bc87dd6df3df82280b0fbd8c5a38d is a merge but no -m option was given.
fatal: revert failed

それから試した...

$ git revert -m 1 --no-commit d3289a7ab82fd76386d99bdd2c5e6496ecc62529..
error: Mainline was specified but commit 84ccf1084d17d470ee03b89a7649c4a783f2b914 is not a merge.
fatal: revert failed
4

2 に答える 2

6

はい、できます (最上位ディレクトリから):

git revert --no-commit <relevant SHA>..

次に、通常どおりコミットしてプッシュします。

を使用して同様のものを取得できますgit checkout <relevant SHA> -- .が、これは関連するコミット以降に追加されたファイルを削除しないことに注意してください。

于 2013-11-07T21:06:35.060 に答える