GitHub(Git)とGoogleCode(Subversion)でプロジェクトを共存する

10 月 21st, 2009 in Git, Subversion users

Git使ってみたいけど、Subversionも捨てれないなーって人のために二兎追ってみる。

結論から言うとできるっぽい。

以下、備忘録。初Gitなので変なこと言ってたらつっこんでください。
動作環境はSnowLeopardのコマンドライン上

前提条件

  • Subversionクライアントあり
  • Gitクライアント(git-svnつき)あり
  • GoogleCode上にプロジェクト作成済み
  • GitHub上にプロジェクト作成済み

MacPortsだとsudo port install git-core +svnね

SubversionからGitに移行

# Subversion上のレポジトリをとってくてローカルのレポジトリにクローン (プロジェクト構成は自分の環境に合わせる)
$ git svn clone --username <<GoogleCodeのユーザー名>> https://<<GoogleCodeのプロジェクト名>>.googlecode.com/svn/<<プロジェクト名>> -T trunk -t tags -b branches
$ cd <<GoogleCodeのプロジェクト名>>
# リーモトのレポジトリ(orgin)を指定
$ git remote add origin git@github.com:<<GitHubのユーザー名>>/<<GitHubのプロジェクト名>>.git
# ローカルのレポジトリ(master)をリモート(github)のレポジトリ(origin)にプッシュ(反映)
$ git push origin master
# svnignoreを反映
$ git svn show-ignore >> .git/info/exclude

GitHubに反映

適当に修正後

# ローカルのレポジトリに変更をコミット
$ git commit -a -m "hogehoge"
# リモートのレポジトリに反映
$ git push

ここは普通か。

GoogleCogeにも反映

今の変更点をSubversionにも反映

# ローカルレポジトリの変更をSubversion上のレポジトリに反映
$ git svn dcommit

簡単ですね

逆にSubversion側の変更をGitに反映

別の(Gitが使えない)場所で作業して、GoogleCodeにコミットした後、GitHubに反映させたいとき

# Subversion上のレポジトリの変更をローカルレポジトリに反映
$ git svn rebase
# リモートのレポジトリに反映
$ git push

ここでエラー発生

To git@github.com:making/jbf.git
! [rejected]        master -> master (non-fast forward)
error: failed to push some refs to 'git@github.com:making/jbf.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'non-fast forward'
section of 'git push --help' for details.

non-fastほげほげがキーワードっぽい。historyが消えるとかどうとか。よーわからん。helpみたら+つければいけそう

$ git push origin +master

これで良いのかわからんけど、うまくいった。
問題があったら教えてください

ぼくのGitHub

ここ
フォローして!

Leave a Reply

Recent Posts

よく考えたらこれでいいじゃん http://bit.ly/bsxqE0 MapperとReducer別々にしないとReflection走るな RT @making: multimethodでたくさん書くのが面倒だからこんなマクロ作った http://bit.ly/bsxqE0
* 10年03月11日03時09分

@junkawamoto うお、おれ明日源泉徴収票届く予定w
* 10年03月11日01時55分

@ryushi スプライシングクオートは楽して大量にS式を自動生成したいときに結構使います。よく入力をmapでごにょごにょ加工して~@したり。 単純な例だとこんなことができます http://gist.github.com/328042
* 10年03月11日01時48分

» Twitter

Search

ドミノ・ピザ 5%OFF!

デル株式会社

 iTunes Store(Japan)

 iTunes Store(Japan)

Sony Style(ソニースタイル)

ツートップインターネットショップ(twotop.co.jp)

Recommend

アルゴリズムC++
アルゴリズムC++
¥ 7,980(新品) /¥ 5,100(中古)
データ構造・アルゴリズムの基礎に関して
一通り網羅されている.
一冊机の上に置いておきたい.
C++で書かれているのも珍しい
(古いC++だけど..)

view all

Categories

Tags