• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

s21gブログではmasterの他にdeployブランチがあり、下記のようなフローで運用しています。

  1. 普段はmasterにpushして
  2. deployできる状態になったらdeployにmasterの変更を反映
  3. deployをpush&cap deploy

ローカルでもdeployブランチとすればよかったのですが、ローカルを意識したいのでlocal_deployという名前にしてみました。そのことで勉強になったので、書いてみたいと思います。

リモートのoriginブランチを確認

   1  git branch -a   
   2  * master
   3    origin/HEAD
   4    origin/deploy
   5    origin/master

ローカルにブランチを作成

   1  git branch local_deploy origin/deploy 
   2  git branch -a #追加されているのを確認
   3  git checkout local_deploy

また下記のコマンド1つで、ブランチを作ってcheckoutまでをやってくれます。

   1  git checkout -b local_deploy origin/deploy

git checkout -b <new> <start-point>
create a new branch <new> referencing <start-point>, and check it out.
http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#manipulating-branches

masterの変更をlocal_deployブランチに反映

   1  git checkout master
   2  git pull --rebase -v #masterを最新に, +verbose
   3  git checkout local_deploy
   4  git merge master
   5  git push origin local_deploy:refs/heads/deploy

git merge masterの前後でちゃんとファイルが変更されているか見てみましたがちゃんとmergeできていました。また、pushの際のsrc:dstの指定の仕方がこのままでは面倒なので調べて後日また書いてみようと思います。

コンフリクトした時は修正後コミットし、上のpushコマンドを発行すればokです。

   1  #(コンフリクトしたファイルを修正後)
   2  git add some.file
   3  git commit -m "merged from master"

posted by Png satoko on Wed 19 Nov 2008 at 13:28 with 2 comments

Comments:

Face gitster almost 16 years ago.

リポジトリの.git/configに、

[remote "origin"] push = refs/heads/local_deploy:refs/heads/deploy

を追加、とか?

Png satoko almost 16 years ago.

アドバイスありがとうございます!試してみます♪

or Preview
Social Bookmarks
  • Delicious
  • B_entry1050
  • Clip_16_12_w
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ