2017-08-21 9 views
0

を取り除く残念ながらI - Gitのルーキーとして - Gitは、このようにログインすると、いくつかの汚れたものを行なったし、終わった:並列分岐

* 13c3cc7 (HEAD -> master, origin/master) everything merged 
|\ 
| * 9457922 some other stuff here 
* | 10b2e6f some stuff here 
|/ 
* 5453269 solid last version 
* ca9f9bf initial commit 

あなたが見ることができるように、コミット10B2および9457が平行です、お互いに築かないでください。

今、理想的に私は、リニア歴史は13C3まで、1つまたは2つの暫定コミットの上に5453から行くとよいでしょう。リベースと、しかし無駄にビットの周りに再生

。ありがとうございました。

答えて

3

インタラクティブなリベースがこのトリックを行う必要があります。試してください

git rebase -i ca9f9bf 

あなたが好きなようにコミットを調整します。

pick 5453269 
pick 10b2e6f 
fixup 9457922 
pick 13c3cc7 

するか、そのまま単純にそれらを残して、彼らは直線化されてしまう必要があります。たとえば、あなたは複数の一緒につぶすことができます。

-1

私はあなたが望むようにこれをきれいにする方法がわかりません。競合が起こっていない場合は、先にマージを早く進めることができました。しかしnow13c3はマージコミットです。

私はあなたがチェリーピックまたは直接リベースの連続でそれをきれいにすることができると思うが、私はやって正確に何を伝えることができなくなりますので、私はnerverそれらを使用しました。

EDIT:それ以外の場合は、非線形の流れが悪く、すべての時間ではありません。たとえば私の会社では、ルールは「早送りはしないで、常にマージコミットを使用してマージする」というルールです。もちろん、マスターブランチでのあなたのコミットがここのような間違いだったかどうかによって異なります。

2

あなたは線形履歴を提供するためにあなたを強制するいくつかの外部の制約がない限り、でもこれを「修正」してみません:歴史は、それが起こったのとまったく同じで、かつgit本当に、このような歴史に対処するためにを設計されましたよく

「修正」しようとすると、それは基本的に道を可能に厄介な結果を伴う嘘になります異なる歴史、になります。あなたは、実際にあなたの歴史を平均的に扱うことをより困難にしています。

私は、1のために、私はプロジェクトに取り組んで唯一の人間だ場合でも、そのようなフォークの歴史のすべての時間を作ります。私の助言は、そのままリラックスして放置することです。