記録のためにgEDAスイートで私の電子プロジェクトを維持するのにgit
を使用しています。現在のプロジェクトには、rev-Aとrev-Bという2つのブランチがあります。私は現在、リビジョンBに取り組んでいます。私は最近、古いリビジョンA(回路図やPDFファイルの改訂番号が間違っています)に間違いを覚えたので、2つのドキュメントを修正し、git reset -hard <ID>
とgit commit -a --amend
を使用して変更を修正しました。未知の修正の後にGITツリーが台無しになりました - 並べ替え/クリーニングが必要
私はそのような編集を2回行いましたが、私はこれらの変更に伴う予防措置を知らなかった - 私は歴史を台無しにしてしまったと思っています。
はここ(--date-order
が同じ結果を与える)ツリーがコミットを修正した後、次のようになります。
$ git log --graph --all --oneline --decorate
* 35945e5 (rev-A) Revision A - Final product
| * aada926 (HEAD -> rev-B) Revision B - Updated BOM (...)
| * b88eb61 Revision B - Final product as ordered (...)
| * 0bda52b Revision B - Reduced to 25.4mm x 35mm
| * fe2246f Revision A - Final product
|/
* 260eb65 Revision A - Smaller capacitor footprint (...)
はここ(--date-order
が同じ結果を与える)私が行ったすべてのコミットを持つツリーです:
$ git log --reflog --graph --oneline --decorate
* 86d6072 Revision A - Smaller capacitor footprint (...)
* 35945e5 (rev-A) Revision A - Final product
| * aada926 (HEAD -> rev-B) Revision B - Updated BOM (...)
| * b88eb61 Revision B - Final product as ordered (...)
| | * 7ba0df4 Revision B - Final product as order (...)
| |/
| * 0bda52b Revision B - Reduced to 25.4mm x 35mm
| * fe2246f Revision A - Final product
|/
* 260eb65 Revision A - Smaller capacitor footprint (...)
git diff
私は次のことに気付くことができました:
- のコミットb88eb61と7ba0df4変化を示さない、明らかに
7ba0df4
が冗長である(一つでも、私はそれがメッセージにタイプミスがありますので、取り除くたかったコミットです) - 86d6072 260eb65 間と、後者は、後者が、私は維持したいと思い一つであり、私は
- fe2246f 間と35945e5を維持したいものです
は、ここで私が持っている枝です:
別に私は特に支店名が表示される場所へと、私は両方のツリーを理解していないことから、$ git branch
rev-A
* rev-B
。私が望むのは私のリビジョンAコミットのすべてがブランチrev-A
に属し、すべてリビジョンBからrev-B
に属することです。どうすればその木を安全に並べ替え整理できますか?
EDIT:それはリビジョンBは、260eb65
の代わりにフォークする必要があり、そこから一つだしながら、さらなる分析の後、私は86d6072 Revision A - Smaller capacitor footprint (...)
をコミット推論がどこかに失われています。それはすべてあなたのコミットされていない変更を破棄しますので、そこでどのように私は戻ってrev-A
ブランチにそれを持っていると260eb65
どのような_specific_をリセットして修正しましたか?彼らはあなたの木のどこにいますか? – Useless
@Uselessそれは私が迷子になる場所です。私のbashの歴史から、私は '86d6072'にリセットしてそこから修正し、' 35945e5'にリセットしてそこから修正しました。不思議なことに、私が守る必要のある文書を含むコミットです。私はもう何も理解していないし、残念ながら変更IDを書き留めておらず、申し訳ありません。 –
あなたの説明によると、 '260eb65'と' 86d6072'は_siblings_であるべきですが、あなたのグラフは古いバージョンの祖先として新しいバージョンを表示します。それは文字通り不可能なので、あなたの説明から何が起こったのかを理解することは非常に難しいです。おそらく、あなたは '--date-order'を削除し、最後の共通の祖先をツリーに含めることができますか? – Useless