TL; DRバージョン:これをクリーンアップすることもできますが、あまりにも多くの人が既に混乱に頼っている可能性があります。それが2人だけの人なら、それはあまりにも多くないかもしれません。その部分はあなたが決断しなければならないものです(できれば彼らと共に)。
これらのコミットが公開され、あなたといくつか他の人が(私たちはすなわち、あなたとあなたの上司、少なくとも二つの知っている)それらを拾ってきました。
あなたが少ない、あるいは全くマージを生成するために、すべてをやり直すことができますが、そうならば、マージを拾ったことのある人が同様にそのリポジトリを調整するためにいくつかの作業を行う必要があります。理由は簡単です:gitのみ今までは新しいものをリポジトリに追加しますが、実際には何も削除しません。 、もはまだそれらを持っている、あなたはので、新しいものを作る、その後、いくつかのマージを「破棄」するgit reset
を使用することができますが、あなたのリポジトリはまだ元のマージを持っている...そして、それを拾った誰
は、それらに依存する作業を行っている可能性があります。そうであれば、削除したと思っているもの(まだ持っているもの)と作業をマージするときにそれらのコミットを再導入します。つまり、ではなく、を自分の仕事とマージする必要があります。本当に削除されていない作品。
具体的には、彼らは以前の仕事、またはあなたがその場所に置いた新しい取り替えのいずれかで、彼らがこの周りに回るまでにrebase作業をする必要があります。
これらのマージの後に、またはマージの一部としてリベースすることを選択した場合も同じことが起こります。これは、rebaseがにコピーされ、新しいIDと新しい親IDを使用して新しいコミットにコミットするためです(通常、リベースはマージを破棄します)。
たとえば、3つのコミットがあり、それらを移動(リベース)したいとします。最初の "移動"コミットは、新しい親IDを持つことができるようにコピーしなければなりません。これにより、自身の新しいIDが与えられます。つまり、2番目のコミットもコピーして、最初のコピーの新しいIDを親として持つことができ、2番目のコピーに新しいIDを与える必要があります。
(前)::
(コピーした後)
... <- o <- o <- o <-- master
\
o <- o <- o <-- yourbranch
:
... <- o <- o <- o <-- master
\ \
\ o <- o <- o <-- yourbranch [copies]
\
o <- o <- o [abandoned originals]
誰場合は、第三は、その親として2番目の新しいIDを持つことができるようにコピーする必要がありますコミットそうでない場合は、これらのコミットがあります。が公開されていない場合は確かに当てはまります。が公開されています。元のIDを忘れてコピーしても問題ありません。しかし、他の誰かがオリジナルを持っていれば、それらを再導入することができます。
何を、決して?
いいえ、決してありません!
何も決してありません。
まあまあ!
(より正確には、を削除するを表示されていることのものは、通常はちょうどGitは本当にゴミとしてリサイクルするのに十分な長されていることを決定するまでには30日かそこらのために残っている場合は、隠されている。)
ありがとうございました。これは多かれ少なかれ私が恐れていたものです。そして、そうです、組織の他の誰かがこのリポジトリをすでに取得しているかどうかは分かりませんので、私はそれを残して、今から適切に行う方法を知っていることを確認することをお勧めします。再度、感謝します! –