Archive for 2009/11/19

gitでは、ちょっとした開発やバグフィックスなどbranchを使用して開発する。
このために、頻繁にマージしたくなる。

ただし、ここであえて「マージ」と記述したのは、”git merge”のことではなく、
変更した内容を反映させたいという意味で「マージ」だ。

そのマージする際の、いろいろな手順にを覚書として記録しておく。

1)ブランチのコミットした内容も含めてマージする

git merge [ブランチ名]

2)ブランチの修正した内容すべての変更を取り込む

つまり、1)でやったこととほぼ同様だが、コミットはしない。

git merge --squash [ブランチ名]

これで、ブランチ上で行ったすべての変更が1つになって取り込まれる。

しかしながら、これでは、せっかく何度もブランチ上で育てたログが無駄になってしまう。
ログとソースをきれいにした状態で再作成したい場合にはこれではこまるので、
次の方法をとる。

3)パッチファイルを作成して、自由な単位でマージする

git format-patch -o dir_p mater..[ブランチ名]

たとえば

git format-patch -o p1 master..fix4
p1/0001-7.3.patch
p1/0002-7.4.patch

こんな感じに出力されます。

次に、そのパッチを当てるのですが、当て方が2種類。
こちらも、ログ情報なども含めて自動的にコミットするか?
または、修正の内容だけを反映して、後で自分でコミットするか?
です。

パッチをあててコミットも自動で行う

git am [パッチファイル]

で先ほどの出力例を使って実行すると・・・

git am p1/0001-7.3.patch
Applying: 7.3

修正の内容だけを反映する

git apply [パッチファイル]
git apply p1/0002-7.4.patch

これらの方法を使って、後で管理しやすいように修正の単位とログをきれいにできるので、
結構使うといいのではないでしょうか?

RSS
Add to Google

カスタム検索
ソフトウェア&ライブラリ


ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
カレンダー
2009年11月
« 10月   12月 »
 1
2345678
9101112131415
16171819202122
23242526272829
30  
アーカイブ
にほんブログ村 IT技術ブログへ