2016-05-03 13 views
0

別のプロジェクトのリモートアドレスを誤って変更してしまいました。私のコミットが別のプロジェクトでコピーされ、タグが移動しました

これで、1つのプロジェクトからのすべてのコミットが、同じIDの別のプロジェクトにコピーされました。

さらに、元のプロジェクトのすべてのラベルが消えて、2番目のプロジェクトでのみ魔法のように見つかるようになりました。奇妙なのは、私がタグを見ると、それらがどのブランチにもリンクされていないので、私はそれらを見ることしかできないということです。あなたがIDをコミット見ることができるように

**オリジナルプロジェクト** enter image description here

セカンドプロジェクト enter image description here 関連してこれらのタグをあなたはここを参照してくださいもともとないことをコミット二つのプロジェクトでも同じですこのプロジェクトに属しています。

私がしたいのは、元のプロジェクトのラベルをすべて元に戻して(基本的に元に戻して)、2番目のプロジェクトから余分なコミットをすべて削除するのが理想的です。時間がかかる)。私は奇妙見つけたもの

は、私は2番目のプロジェクトからタグを削除した場合、その後のコミットも魔法

答えて

1

ない完全な答え、わずか数説明とsituaionを修正するためにどのような提案を消えるように見えるということです。

両方のプロジェクトに同じ名前のタグがある場合は、状態を復元する際には細心の注意が必要です。一般的に、gitのすべての生存コミットは、別のコミットまたはコミット、または名前付き参照、つまりブランチまたはタグによって参照される必要があります。したがって、ブランチまたはコミットを指し示すタグを削除すると、コミットのチェーン全体が孤立し、最終的にガベージコレクションされるリスクがあります。いくつかのコミットが消えたとしても、しばらくsha-1でアクセス可能な可能性があります。それらのためにgit reflogをチェックしてください。

まず、破損したリポジトリをクリーンなローカルフォルダにクローンする必要があります。したがって、あなたは少なくとも残っているものを保存します。また、リポジトリの他のクローンを探して(ハードドライブを徹底的にチェックし、同僚に尋ねる)、タグやブランチに関する正しい情報が含まれている可能性があります。リポジトリのバックアップはこのケースでは多くの助けになるかもしれませんが、地球上の誰がバックアップをの前にの前に...ちょうど冗談です。

少なくとも一部の正しい参照でリポジトリを見つけたら、その参照を壊れたリモートリポジトリとローカルコピーに強制的にプッシュすることができます。 git push -f <tagname>を使用しますが、は特別なケアで行います。

gitlab.comでバックアップサービスが提供されているかどうかは分かりませんが、リポジトリのスナップショットが適切かどうかを確認することもできます。もちろん、あなたのリモートレポがgitlab.comにあり、自分のホスティングではありません。

関連する問題