Git初め
これまでSVN
↓
時代はGit
↓
Gitのサーバ立てるのが面倒
↓
Github
↓
事情でprivateにしたい&出来れば無料で
↓
bitbucket
て流れです。開発者も少数なので。人数増えて来たら、Github Enterprise含め検討しようかと。
既にEclipseでプロジェクトが存在します。これをGitで管理したい。
まず、ローカルリポジトリ。
githubのドキュメントが分かりやすいです。Create a repo - GitHub Help
会社では、社外にSSHでアクセス出来ない!ので、HTTPS使うしかありません・・・。ほんとなんとかしたい。
ローカルリポジトリ作成
$ mkdir ~/hoge $ cd ~/hoge $ git init $ touch README $ git add README $ git commit -m 'first commit'
リモートにpush!
$ git remote add origin https://nosa@bitbucket.org/nosa/hoge.git $ git remote -v origin https://nosa@bitbucket.org/nosa/hoge.git (fetch) origin https://nosa@bitbucket.org/nosa/hoge.git (push) $ git push -u origin master Password for 'https://nosa@bitbucket.org': Counting objects: 3, done. Writing objects: 100% (3/3), 204 bytes, done. Total 3 (delta 0), reused 0 (delta 0) remote: bb/acl: nosa is allowed. accepted payload. To https://nosa@bitbucket.org/nosa/hoge.git * [new branch] master -> master Branch master set up to track remote branch master from origin.
パスワード毎回確認するの面倒になりそう。SSHにしたい・・・。
originやらmasterについて。
Git超入門:"git push origin master"の"push"と"origin"と"master"の意味がわからないあなたへ · DQNEO起業日記
ありがとうございます。私も恐怖を感じました。
次に既存のEclipseのプロジェクトを、ローカルリポジトリに突っ込みたいと思います。
ローカルリポジトリとの共有
EclipseでGitを使うには、EGitが必要です。EGit | The Eclipse Foundation
・設定から、先ほど作ったローカルリポジトリの親ディレクトリをGitのDefault Repositoryと設定。
・Gitのパースペクティブから、先ほど作ったローカルリポジトリを追加。
・プロジェクトから、プロジェクトの共有 - Git - ローカルリポジトリを指定、終了。
既存のプロジェクトのワークスペースから、ローカルリポジトリにプロジェクトが移動します。
これちょっと違和感ありました。git - tech.cm55.com
SVNの場合は、リモートからCheckout、ワークスペースにソースがコピーされるのですが、
Gitの場合は、ローカルリポジトリ≒プロジェクトな感じになるので、ワークスペースという考えが薄いように思います。
個人的には、ワークスペース - ローカルリポジトリ - リモートリポジトリの3段構えのほうが分かり易いです。
これまでSVNを使ってたからでしょうね。
・sbtを使っているので、ローカルリポジトリに移動し、sbt reload,update,eclipseなど実行、確認。
ローカルリポジトリにCommit!
必要のないファイルもあるので、gitignoreを設定します。sbtで作成したプロジェクトなので、とりあえずこんな感じです。
*.class *.jar *.zip .cache .classpath .project .settings/ target/
で、Eclipseから、Team - Commitするんですが、
Exception caught during execution of add command
でるんですよね・・・。どうも特定のファイルがダメらしい。自分の場合はXMLのファイル。
他のXMLのファイルはOKだし、同じディレクトリにあるXMLファイルもOKなので、
XMLやディレクトリが原因ではなさそう。
また、ファイルの中身に日本語が含まれている(ファイル名は英語)けど、これも他のファイルがOKなので、
日本語が原因でもなさそう。
・ファイルを空ににする→OK
・少しだけ内容も戻す→OK
・全部戻す→NG
・半分ぐらいに戻す→OK
・もう少し戻す→NG
なーぜー?ファイルサイズ疑いますが、うーん・・・。
gitでCommitしてみる。
$ git commit hoge/src/main/webapp/test/hogehoge.xml
いける。pushも出来る。EGit何か設定あったかなぁ。
ここらへんEclipse Community Forums: EGit / JGit » Exception caught during execution of commit commandとか
まさにって感じなんですが。
自分もEgitのバージョンは、1.3.0.201202151440-rです。
Eclipseからソフトウェアの更新で、Egitバージョン上がってました。2.0.0.201205071915にアップしました。
Commit出来ました。バグだったんでしょうか。
最後に、bitbucketをブラウザから確認。ちゃんと見れますね。
だれか招待(invite)して、cloneして確認してもらおう。
基本的なコマンド覚えないとですね。
Gitを使いこなすための20のコマンド | OSDN Magazine
ここらへんぐらいは抑えたいところです。
git status
変更されたファイルを表示。新規ファイルは出ない。push前は、確認した方がよいかな。
git rm
ファイル削除、ディレクトリを消す場合は、-r付ける。
git remote -v
リモートリポジトリの情報を表示。リモートリポジトリが複数あるので、確認に使った。
git commit -a
変更が加えられたファイルを自動検出してコミット。ガッツリ消す時使った。
Git初心者に分かりやすいサイト:
git - 簡単ガイド
イラストでわかる!git入門の入門 - アシアルブログ
お疲れ様でした。
追記:
既にeclipseでプロジェクトがあり、ディレクトリ構成がそのままで良いなら、
SVNと切断して、プロジェクトのディレクトリで、
git init
したほうが簡単ですね。