1

特定の commit でソースが変更された特定のディレクトリがあります0x0x0x0x0。そのコミットの後、すべてマスター上で他の多くのコミットが行われました。

そのコミットをキャンセルしたいのですが0x0x0x0x0、この特定のディレクトリのローカル (アップストリームではなく) には、このコミットが行われる前のコードがあります。これにはどのような git コマンドを実行できますか?

後で編集:その後の変更ではなく、特定のコミットをキャンセルしたいだけです。独立したモジュールであるため、コードとしては影響しません。また、このローカル リポジトリを使用してさらに上流にコミットすることもありません。

4

2 に答える 2

5

コミットが導入される前に戻りたい場合は、その変更とその後 (他のコミットで) 行われたすべての変更を効果的に削除するには、次の操作を実行できます。

  • 古いバージョンへの新しいブランチをチェックアウトして、情報を失わずに古い状態から再起動できるようにします。git checkout -b <newbranchname> commithash~1
  • 現在のブランチを古いバージョンにリセットし、他のブランチがそれらを指していない場合、履歴からすべてのコミットを効果的に削除します。git reset --hard commithash~1

しかし、その後に加えられたすべての変更を保持しながら、上記のコミットを元に戻したい場合は、次のようにするだけです。

git revert commithash
于 2013-02-26T15:03:05.597 に答える
1

次のコマンドを使用して、任意のコミットに戻ることができます。

git reset --hard commit_identifier

注:コミット識別子を取得するには、git logコマンドを使用します

次のコマンドを使用して、最後のコミットをリセットすることもできます。

git commit --amend

詳細については、次のリンクをご覧ください。

http://www.kernel.org/pub/software/scm/git/docs/git-reset.html

于 2013-02-26T15:14:51.770 に答える