を押す--force:上書きリポジトリ - 、私はコマンドを使用し、私は本当に大きな問題を抱えている
git push --force origin master
git reflog
f8037dd [email protected]{11}: commit (initial): doc
今、私は最後の25回のコミットを復元することができますどのように、1コミットしていますか?おかげで助けてくれてありがとう:))
を押す--force:上書きリポジトリ - 、私はコマンドを使用し、私は本当に大きな問題を抱えている
git push --force origin master
git reflog
f8037dd [email protected]{11}: commit (initial): doc
今、私は最後の25回のコミットを復元することができますどのように、1コミットしていますか?おかげで助けてくれてありがとう:))
私はあなたのローカルリポジトリに1つだけコミットし、なぜ強制的にリモートリポジトリをオーバーライドする必要があるのか分かりません。
git push --force
は、危険コマンドであり、注意しなければならないリモートのリポジトリを上書きします。
別のブランチが存在するのか、別の寄稿者がレポのコピーを持っていますか?
回答は、決してpush --force
を絶対に使用しないでください。意識してリポジトリまたはその一部を破棄しない限り。
復旧方法あなたがpush -f
後にローカルコピーを台無しにしなかった場合は、実行します。新しいタグの
git fsck --unreachable --dangling | sed -n -e '/^unreachable commit/{ s/unreachable commit \(.*\)/tag_\1 \1/; p} ' | xargs -L1 git tag
ルック - gitkやgitgが役に立つかもしれ - それから回復。がんばろう。
ところで、私はちょうどあなたが、あなたは他のローカルレポを持っている他の答えの下で述べてきました気づきました。そのリポジトリに履歴がある場合、なぜコミットをプッシュしないのですか?
GUI GITで自分のPCに他のsave repoを使用しました。 – Graku
現在のローカルブランチ、ローカルの別のブランチ、リモートのマスターブランチなどで、コミットされた場所の詳細を追加してください。彼らがあなたのマシンではなく遠隔地のマスターであった場合、回復することは困難または不可能かもしれません。コードの別のクローンからコミットを再度プッシュすることができれば理想的です。フィーチャーブランチを開発してマージすることで、次回の強制実行を避けることができます。 –
Gerritを使用してプロジェクトをホストしています。 refの更新は、サーバ側のreposのreflogによって記録されます。サーバ管理者に助けを求めることができます。 – ElpieKay