git を使用してプロジェクトに取り組んでいます。私は 2 つのフィーチャー ブランチを持っていdev-a
ます。dev-b
develop
master
私は少し作業し、dev-a
それを完成させ、それを にマージし直しdevelop
、 で少し作業を行いdevelop
、 で開始し、少し作業したdev-b
後、 で行うべきことを見つけたdev-a
ので、 をチェックアウトdev-a
して修正します。私の DAG は次のようになります。
コミット ハッシュは明らかに作り出されたものであり、実際のハッシュではありません。それらは参照用です
* 008 - (dev-a) Fix problem on dev-a
|
| * 007 - (dev-b) Work on dev-b
| * 006 - Work on dev-b
| |
| * 005 - (develop) Work on develop
| * 004 - Work on develop
| * 003 - Merged dev-a
|/|
* | 002 - Work on dev-a
* | 001 - Work on dev-a
\|
* 000 - Work on develop
|
ただし、私がやりたいのは、そのコミットをマージの「前」に発生させて、リベースdevelop
してそのdev-b
上に置き、すべてをきちんと整理できるようにすることです。
* 007 - (dev-b) Work on dev-b
* 006 - Work on dev-b
|
* 005 - (develop) Work on develop
* 004 - Work on develop
* 003 - Merged dev-a
/|
* | 008 - (dev-a) Fix problem on dev-a
* | 002 - Work on dev-a
* | 001 - Work on dev-a
\|
* 000 - Work on develop
|
dev-a
の修正は後のコミットと競合しないことに注意することも重要です。これは、単一のファイルに対するかなり小さな変更です。関連するすべてのコミットはローカルであり、共有されていません。
git はかなり柔軟なので、これができると確信していますが、それが可能かどうか、どのように行うか、またはそれが良いアイデアかどうかはわかりません。