2012-02-28 3 views
10

私の同僚をのBitbucketするためにプッシュした後のコミットが削除され、メッセージがどのようにコミットを救うことができビットバケット剥奪Gitの改正

stripped 6f9de58aa748 from projektA 
4 hours ago 
stripped 54dae89de600 from projektA 
4 hours ago 
stripped e04022989a9d from projektA 
... 

ビットバケットのニュースフィードに表示されますか? 本当にGitはコミットを削除できるバージョン管理システムですか? これは--forceのためですか?

答えて

10

どのように私はコミットを救済できますか?

残念ながら、これらのコミットを返すためにあなたのサイトで行うことはありません(details)。これらのコミットを復元できるのはBBサービスチームに連絡する必要があります。

本当にGitはコミットを削除できるバージョン管理システムですか?

このように設定すると、サーバ上のリポジトリで--sharedオプションを指定してgit initを実行したときのデフォルトですが、それ以外の場合はfalse)、この動作を無効にするにはreceive.denyNonFastForwardstrueに設定する必要があります。

これは--forceによるものですか?

はい、git pushに力パラメータを使用すると、あなたの新しいブランチヘッドは、他のコミットを捨て、そしてreceive.denyNonFastForwardsがfalseの場合、安全性チェックを無効にするには、サーバー側のgitを行いません。場合

+2

Gitは分散システムなので、OPは同僚のローカルリポジトリから失われたコミットを取り出せませんか?少なくとも、彼らは起源と一致するようにローカルreposをリセットするまで? –

4

誰が私があったように、このスレッドは、「ビットバケット剥奪コミット」のために必死に探して見つけた:

私はthese instructionsに従うことによって、ローカル鉱山を復元するために管理。

私は再びビットバケットにプッシュし、取り除かれたコミットが復元されました。

+0

reflogは確かにローカルの間違いを元に戻す素晴らしいツールですが、上書きしたコミットがあなたのローカルリポジトリには決してなかった場合は助けになりません。 –

0

最近これも直面しました。かなり迷惑な、私は言う必要があります。しかし、私たちの場合、元のユーザーが再度プッシュした直後に、取り除かれたコミットが復元されました。これを避けるためにもう一度やったのは、問題の支店で「履歴の再書き込み」を無効にすることでした。

これは将来これに直面する人に役立ちます。

関連する問題