23

こんなふうになります:

  • 変更したファイル A と B があります

  • Aをコミットしてプッシュするだけだと思いますが、誤って両方をコミットしてAとBの両方をプッシュしました

  • 「git push old-id:master」を実行したので、github では「Master is now old-id」と表示されます。ここで、old-id は私の前の最後のコミットなので、コミットする前に戻っていると思います。

質問:

  • 私のローカルでは、A と B を含むコミットを元に戻し、A のみをコミットし、A のみをプッシュするにはどうすればよいですか?

注: ただし、ローカルで A と B の両方の変更を保持する必要があります。最終結果は次のようになります。

  • ローカル - 新しい A と新しい B
  • Github - 新しい A と古い B
4

1 に答える 1

40
$ git reset <old-id>    # Undo the commit after old-id
$ git add A             # stage A for a new commit
$ git commit            # make the new commit
$ git push              # push it
于 2012-04-17T03:31:08.523 に答える