[Hiki-dev:01331] Re: master ブランチの入れ替え

Back to archive index

Naohisa GOTO ngoto****@gen-i*****
2011年 9月 3日 (土) 01:08:13 JST


後藤といいます。

> C. がんばって rack ブランチの変更点を master にマージする
>
> 大きいコミット一つでマージすることになると思います。
> 履歴はあんまりいい感じにはならない気がします。

ひとつの大きいコミットなら、がんばらなくても、
 ##rackブランチに入る
 $ git checkout rack
 ##rackの内容で作業用ブランチを作る
 $ git checkout -b tmp
 ##ファイルを保ったまま無理やり履歴をmasterにする
 $ git reset --soft master
 ##そのままコミット
 $ git commit
 ##masterに戻る
 $ git checkout master
 ##作業用ブランチをマージ
 $ git merge tmp

として、あとはgit pushすれば簡単にできると思います。
変更記録は、上記 git commit の際に、rackブランチでの変更内容を
長々とコミットメッセージに書く程度しか思いつきません。

さらに別の方法もあります。
rackをmasterにマージしたのをgit上で明示しつつ、楽にマージする技として、
rackブランチへの分岐後にmasterに加えた変更を一括してリバートした後で
rackブランチをマージする、という方法があります。

具体的には、まず、rackブランチとの分岐点のコミットIDを見つけます。
https://github.com/hiki/hiki/network
を見ると、d16f5aa94ba2988e2048 であるのがわかるので、
 ## masterからスタート
 $ git checkout master
 ## 新しい作業用ブランチを作成
 $ git checkout -b tmp2
 ## 履歴を保ったままファイルを分岐点のものに変更。最後の「 .」を忘れずに。
 $ git checkout d16f5aa94ba2988e2048 .
 ## コミットする
 $ git commit -m "revert to d16f5aa94ba2988e2048f2d29c82dafc547283d8 for merging branch rack"
 ## rackブランチをマージする
 $ git merge -m "Merge branch 'rack'" rack
 ## masterに戻る
 $ git checkout master
 ## 作業用ブランチをmasterにマージ。Fast-forwardであるのを確認。
 $ git merge tmp2

あとは、git log や git diff rack で十分確認してから、
git push すればOKです。

何が普通なのかは私も知りたいところですが、
公開したブランチの履歴を改変するのは好ましくないので、
A.はできるだけ避けたほうがいいとは思いました。

On Fri, 2 Sep 2011 23:26:46 +0900
okkez <okkez****@gmail*****> wrote:

> okkez です。
> 
> 件名の通り github の master ブランチを入れ替えようと思います。
> ブランチを入れ替えた後は、私は古いブランチを弄らない予定です。
> 
> https://github.com/hiki/hiki
> 
> 方法が三つあって、どれが良いが相談したいと思っています。
> 
> A. master を old-stable に変更して rack ブランチを新 master にする。
> 
> $ git branch -m master old-stable
> $ git branch -m rack master
> $ git push origin :master
> $ git push origin master
> $ git push origin :rack
> $ git push origin old-stable
> 
> みたいな感じになると思います。
> 
> B. github.com の設定で rack ブランチを Default Branch にする。
> 
> github の Admin メニューから変更するだけです。
> 
> C. がんばって rack ブランチの変更点を master にマージする
> 
> 大きいコミット一つでマージすることになると思います。
> 履歴はあんまりいい感じにはならない気がします。
> 
> あるいは他の方法があるんでしょうか。
> どうするのが普通なんでしょうか。
> 
> 
> 
> -- 
> okkez
> okkez****@gmail*****


-- 
後藤 直久  ngoto****@gen-i*****




Hiki-dev メーリングリストの案内
Back to archive index