私のものが既にプッシュされ、展開された後、前のコミットに戻す必要があります。GIT ...元に戻す
私はそれをチェックアウトするためにGitのチェックアウトのHEAD^
を使用していたが、今それをプッシュしますか?それは枝がuptodateだと言う!
すべてのヘルプは大歓迎です!「」」
私のものが既にプッシュされ、展開された後、前のコミットに戻す必要があります。GIT ...元に戻す
私はそれをチェックアウトするためにGitのチェックアウトのHEAD^
を使用していたが、今それをプッシュしますか?それは枝がuptodateだと言う!
すべてのヘルプは大歓迎です!「」」
2つのオプションがあります。 git revert HEAD
で間違ったコミットを元に戻すことができます。これにより、前のコミットを元に戻す新しいコミットが生成されます。他のコミットと同じようにプッシュできます。
コミットが存在しないことを履歴に表示する場合は、git reset --hard HEAD^
でコミットを削除できます。 (作業ディレクトリに加えた変更はすべて破棄されますので、-f
フラグを押して強制的にリモートリポジトリからコミットを取り除くことができますので注意してください。あなたをコミット削除します。さらに重要なのは、あなたがコミットするので、誰もが何かをプッシュしている場合、それらのコミットが失われます。あなたは他の誰がレポにアクセスしたかどうかわからない場合は、最初のオプションを最も安全である。
EDIT
Jefromiが言及しているように、上記のどちらかを実行する前に作業していたブランチをチェックしたい場合、または別の問題が発生する可能性があります。
'git checkout HEAD ^'の実行後、チェックアウトされていないブランチがないので、OPは復帰またはリセットする前に 'git checkout
この回答とコメントは最も正しいです。一度中央のリポジトリにプッシュすると、履歴の編集はお勧めできません。正しいことは変更を元に戻し、元に戻した変更をプッシュすることです。つまり、時間通りに戻ってはいけません。進む(将来に戻る)。 –
@Jefromi良い点。それを加えていただきありがとうございます –
をあなたが最初の変更をコミットする必要があります。
また、あなただけの単一のコミットを戻したい場合、あなたはgit revert <commit>
代わりのgit checkout
を使用することができます。
あなただけgit checkout HEAD^
をした場合は、とにかくコミットすることは何もないだろうが、あなたは「デタッチブランチ」になりますあなたがgit checkout HEAD^ -- .
のような何かをしたなら、あなたが上演CHをコミットする必要があります。押し込む前に怒り。
git checkout
古いバージョンをチェックアウトするだけです。それは本当に何も変わらない。 コミットを元に戻すには、反対の変更をコミットする必要があります。うまくいけば、この
git revert *commit-id*
ためspeciallコマンドは、だから、最後はタイプ
git revert HEAD
をコミットしかし、あなたがそのようにコミットマージ戻すことはできません戻すことがあります。これを行うには、元に戻す親を指定する必要があります。親のリストは、(第一又は第二の)コミット所望の数を決定し、次いで
git revert -m 1 HEAD
又は
git revert -m 2 HEAD
可能な複製を実行し、このコマンド
によって見ることができます[GITは前回のコミットに戻る...方法?](http:// stackoverflow。com/questions/4114095/git-revert-to-previous-commit-how) –
重複した質問に対する私の答えはあなたを助けます。その後、プッシュする必要があります。履歴を変更することを選択した場合(例えば 'git reset -hard HEAD ^'で履歴からコミットを取り除く場合)、 'git push -f'を使う必要があります。パブリック・レポから引っ張られた他の誰とも混乱します。 – Cascabel