前提:Macでの作業です。
※SVNから移行時にgit svnが使えない場合
1.リモート側に空のリポジトリを用意する
リモートのGitに、まずは空のリポジトリを用意します。
空のリモートリポジトリ作成方法
2.クライアント側にSVNからクローンしたGitローカルリポジトリを作成する
適当なフォルダを作成し、そこに移動
mkdir /ローカルにフォルダ作成
cd /ローカルにフォルダ作成
git svn clone -s –prefix=origin/ リモートのSVNのプロジェクトパス
変更履歴、改訂まで全て取れる
※ちなみにbranchやtagsも丸ごと移行したい場合は、
git svn clone -s –prefix=svn/ リモートのSVNのプロジェクトパス
として、目印にsvnを付与、後ほど、grepかループ処理でbranch、tagsを作成する必要あり
SVNからcloneすると
Ignoring error from SVN, path probably does not exist
エラーが出て空のGitリポジトリが作成されてしまう場合の対策
これでローカルにgitリポジトリが完成
cat .git/config
で、gitの設定内容が確認できる
3.クライアントからGitローカルリポジトリをリモートへプッシュ
リモート先(origin)を登録する
git remote add origin ssh://ユーザ名@gitサーバー/リモートに作成した空リポジトリのルートからのパス.git
※設定削除する場合
git remote rm origin
反映確認
cat .git/config
masterをプッシュ
git push origin master
※branch、tagsなどもプッシュする場合は、
git push -u origin –all
git push -u origin –tags
これで、SVNの情報をGitサーバーに移行できました。
お疲れ様でした!
※ちなみに空のディレクトリは移行できません。
このままだとmasterにいる状態なので、developブランチを作成し作業ブランチを変更します。
4.リモート側でブランチを確認
リモートリポジトリの直下でbranchを確認します。
git branch
masterがあるはず
リモートにdevelopブランチを作成します。
ブランチを切る
git branch develop
これでdevelopブランチが完成
git branchすると、
* develop
master
5.クライアント側で動作確認
cd ローカルのgitプロジェクトパス
最新情報を取得
git fetch
リモートのブランチ一覧を取得
git branch -a
develop
* master
git checkout -b ローカルブランチ リモートブランチ
でローカルにチェックアウト
オプション-bで、ブランチ自動切り替え
ソースツリーの場合
ソースツリーの管理画面から、新規リポジトリ>urlからクローンで、
ssh://ユーザー名@gitサーバー/リモートのプロジェクトパス.git
で完成。
余談
gitの設定情報追加
ユーザー名、eメール登録
git config user.name “ユーザー名”
git config user.email “Emailアドレス”
追加してもしなくても。。
わかばちゃんと学ぶ Git使い方入門【電子書籍】[ 湊川あい ]
|