2

私はgitで管理されている私のプロジェクトについていくつかの間違いを犯しました:

ここでいくつかのガイドといくつかの投稿を読んで、次のコマンドを作成しました。

git reset --hard a77ec5f

コミット a77ec5f は最後の「良い」コミットです

この後、ファイルは私のローカルコピーにありますが、次のことを行うとgit status:

$ git status
# On branch dev
# Your branch is behind 'origin/dev' by 4 commits, and can be fast-forwarded.
#
nothing to commit (working directory clean)

そして今、私が遅れている4つのコミットが削除されることをサーバーに伝えるにはどうすればよいですか? ありがとう

4

3 に答える 3

3

リポジトリが他の人によって同期されている場合は、まだ誰も悪い変更をプルしていないことが確実でない限り、履歴の変更をプッシュしないでください。

履歴を書き換える (危険) には、ローカルで空のコミット ( git commit --allow-empty) を実行して、リモートの HEAD から HEAD を分岐させてからpush --force、サーバーの履歴を書き換えます。

于 2013-05-29T08:44:44.710 に答える
1

サーバー上のコミットを削除するのではなく、元に戻す必要があります

于 2013-05-29T08:42:58.467 に答える
1

不要なコミットを元に戻すことができます。

git revert commit

これにより、不要な変更を元に戻す別のコミットが作成されます。不要なコミットを元に戻したら、オリジンにプッシュする必要があります。

--no-commit元に戻すためのパラメーターを探すこともできます。

于 2013-05-29T09:00:55.923 に答える