先日、ちょっと迷ったのでメモ。
背景
eclipseで開発しているJavaのプロジェクトがあって、このソースコード管理に Bitbucket を使ってました。で、別のPCでこのプロジェクトを参照しようとして、Gitリポジトリをローカルにクローンして、さてeclipseでプロジェクトをインポートしようとしたら、.project ファイルがGit管理下になくて、素直にインポートできませんでした。
でも、昔こういう場合もインポートしていたはずなのに、どうやってたんだっけ?
ちなみに、このとき使っていた .gitignore ファイルはこれでした。.project とか .classpath はGit管理下においてないですね。
https://github.com/github/gitignore/blob/master/Global/Eclipse.gitignore
環境は次のとおりです。
eclipse Juno SR2
ubuntu 12.04.5 LTS, desktop版, 32bit
解決方法
分かってしまえば、それほど難しい話でもありません。
まず、リポジトリをコピーしておきます。
mor@LaptopDev:~/tmp/test/git$ git clone https://user @ bitbucket.org/user/testproject.git Cloning into 'testproject'... Password for 'https://user @ bitbucket.org': remote: Counting objects: 172, done. remote: Compressing objects: 100% (67/67), done. remote: Total 172 (delta 44), reused 90 (delta 19) Receiving objects: 100% (172/172), 1.17 MiB | 462 KiB/s, done. Resolving deltas: 100% (44/44), done. mor@LaptopDev:~/tmp/test/git$
次に、eclipseのPackage Explorer 上で右クリックし、Import を選択します。
import source の選択で、Projects from Git を選びます。
Repository Source でローカルを選択します。
Addボタンを押し、gitリポジトリを指定します。
Importしたいリポジトリを選択します。なお、リポジトリが表示されない場合は、Directory欄に記入後、Searchボタンを押してみてください。
Finishを押して、リポジトリを選択し、次に進んだら、Use the New Project Wizard を選択します。
Finishを押すと、New Project ウィザードが立ち上がりますので、インポートしたいリポジトリにあったprojectを選択してください(今回はjava)。
Nextを押すと、プロジェクト設定画面に移ります。
ワークスペースで使いたいプロジェクト名を入力します。
『Use default location』のチェックボックスをはずします。
Browseボタンを押して、Gitリポジトリ内部のproject用フォルダを選択します。
完了を押します。
これで、問題なくプロジェクトのインポートが完了です。
ただし、設定内容等は自動的に作成されるため、場合によっては修正が必要になります。
応用
上記の考え方(プロジェクトをインポートする際、デフォルトのワークスペースではなく、gitリポジトリ内のprojectディレクトリを指定する)は、リモートリポジトリのプロジェクトをインポートするときだけではなく、新規のローカルリポジトリに新しいeclipseプロジェクトを追加したい場合にも使えます。
要は、デフォルトでは、eclipseはワークスペース内部にproject関連のファイル・フォルダを作成するのですが、gitを使う場合リポジトリはeclipseのワークスペース内部にないほうがよいので、直接gitリポジトリの場所を指定し、eclipse側ではここを参照するようにすればよいということです。
このあたりのことが下記サイトの記事で若干触れられています。
http://another.maple4ever.net/archives/2060/
http://d.hatena.ne.jp/nosa1/20120510/1336609628
多分大元の情報はこれだと思います。
https://wiki.eclipse.org/EGit/User_Guide#Creating_Repositories
参考資料
http://techbooster.org/android/environment/16587/ Androidの例:上記と同じく .project ファイルのないandroidプロジェクトをインポートしています