3

私はこのgithubリポジトリに取り組んでいます:https ://github.com/Sable/mclab

開発ブランチの歴史は少し不安定です。これが起こったことです:

  • 環境が台無しになっている人物Aは、1970年の日付のコミットをプッシュしました。
  • 人物Bは、自分の「壊れやすい」ブランチを開発にマージし、githubにプッシュしようとしました。しかし、これは起こりました:https ://github.com/Sable/mclab/compare/aa6e2c9d74...9209f45db4 ; レポのすべてのコミットがプッシュされたようです。

今、歴史は奇妙です、例えばhttps://github.com/Sable/mclab/commits/develop?page=58 ; 2008年からの最初のコミット、その後の1970年の混乱した環境のコミット、(次のページで)歴史の先端にあるはずのより最近のコミットが続きます。

だから私は2つの質問があります:

  1. 正確には何が起こったのですか?マージは1970年のコミットによってどういうわけか台無しにされたと思いますが、よくわかりません。
  2. 物事を「修正」するための最良の方法は何でしょうか?プッシュを元に戻すことはできません。基本的には、開発の歴史を、これが起こる前のように見せてほしいと思います。私はこれを達成するためにレポで奇妙な手術をしても大丈夫です。
4

1 に答える 1

1

これは私が理解したことです。

マージはうまくいきました-マージはタイムスタンプに依存しません(たとえば、agit log --date-orderは適切な順序を示します)。しかし、タイムスタンプが(とりわけ)デフォルトの順序のコミットがに表示されることを決定しgit log、明らかにGitHubのコミット比較ビューを決定するため、履歴は奇妙に見えます。

これは私がしたことです:

  • マージが行われる前から私のブランチから始めましdevelopた(1970年のコミットがあります)。
  • に基づいて新しいブランチを作成しましたdevelop
  • 開発git reset --hardを実行し、最初の1970年のコミットの親に戻りました
  • 新しいブランチをインタラクティブに開発にリベースし、日付を変更したいすべてのコミットに対して「編集」を選択し、それらの適切な日付を選択します
  • githubの開発ブランチを削除しました
  • 新しい開発ブランチをgithubにプッシュ

これはうまくいったようですが、プルする前に注意するように人々に指示する必要がありました(新しいリポジトリのクローンを作成するか、リベースする前に行ったのと同じコミットにリセットします)。

于 2013-03-25T21:53:53.860 に答える