お疲れ様です。
使い方の記事が続いてしまって面白味がないかもですが、EclipseからGitHubを使おうとしたとき結構詰まったので、今日はその話をまとめようと思います。
といっても本稿でターゲットにするのはGitBucketです。どちらもEclipseから見たら(1点除いて)同じなので、やり方としては問題ないはずですが、Webサービス上の画面操作は違うのでGitHubを使う場合は・・・「よろしくお願いします!」
また、詰まった点は後ろの方に載せておきます。
手順通りにやれば問題は起きないはずですが、もし詰まったときにでも参考にしてもらえればと。
(↑気力が尽きたのでまた今度追記しておきます)
#今回は画像が多いので、続きのリンクから始まります
何はともあれ共有リポジトリを作ろう
GitBucketにログインすると以下のような画面になります。
右上の緑色のボタン、「New repository」からリポジトリ作成画面へ遷移して下さい。
ちなみに本題からは外れますが、GitBucketを起動するTomcatのJavaバージョンを 環境変数以外で指定したい場合は、「catalina.bat」の16行目付近に set JAVA_HOME="C:\Program Files\Java\jdk1.7.0_51" のように追記するとそのバージョンのJavaで起動するようになります。
遷移すると以下のように表示されるので、必要な情報を入力してください。
- 初期画面
- 入力後
「Greate repository」ボタンを押下するとリポジトリが作成され、リポジトリの状態が表示される画面に遷移します。
これで作成は終了です。
ローカルリポジトリは存在する?
ローカルリポジトリが存在しないのであれば、先ほどの共有リポジトリをcloneしておしまいですが、 「共有リポジトリを作ろうかな」という場合、元にしたいローカルリポジトリが既にあることの方が多い気がします。
そこで本稿では『ローカルリポジトリをベースに共有リポジトリを変更する方法』の説明をしようと思います。
gitコマンドから共有リポジトリを作るのであれば、git cloneに--bareオプションをつければお終いですが、GitBucketのようなWebサービスを利用する場合は、Webサービス上で共有リポジトリを作ってからPushする必要があります。(ですよね?)
共有リポジトリは先ほど作ったので、順序は逆ですが、次は存在している想定のローカルリポジトリを作成していきます。
Eclipseでローカルリポジトリを作成
Gitで管理するプロジェクトの右クリックメニューから「チーム > プロジェクトの共用」を選択します。
リポジトリーのタイプをGitとし、リポジトリーを作成します。
- 初期画面
- リポジトリーの作成ボタン押下前
- 完了ボタン押下前
ローカルリポジトリにコミット
これでプロジェクトがGitのローカルリポジトリで管理されるようになったので、 今度はそこにファイルをコミットします。
- コミット
コメントは
- 1行目に概要
- 2行目空行
- 3行目以降に詳細
としてください。
gitではフォルダ配下にファイルがない場合、フォルダだけをコミットすることができません。 それの対処として、ちょっと置き場をミスったため、今回は意味を成してませんが、 「.gitkeep」という空ファイルをフォルダ配下に置いておく、という対処方法があります。 ビルドパスとして設定しているけどまだファイルがない場合などの対処にご利用ください。
コミットすると、NO-HEADからmasterに代わってますね。
共有リポジトリにPush
お待たせしました。いよいよGitBucketにPushです。
今回はローカルリポジトリの内容で共有リポジトリを上書いてしまいます。
プロジェクトの右クリックメニューから「チーム > リモート> プッシュ」を選択します。
そうすると以下のような画面が出てくるので、GitBucketのリポジトリページに表示されていたURLをコピーしてきて貼り付けます。
必要な情報を入力したら、次はPush元、Push先を指定します。 ここを間違えてHEADにすると全て台無しになるようなので注意してください。
最後に更新の強制にチェックして、次の画面で結果を確認しつつ完了ボタンを押下すれば、Push終了です。
GitBucketの画面を更新すると、ファイルが追加されているのが確認できると思います。
共有リポジトリからPull
実はこの状態ではまた共有リポジトリからのPullができません。
できるようにするために、branch.master.mergeの設定とPushとFetchの設定をします。
ここからは「Git リポジトリー・エクスプローラー」パースペクティブで作業をします。
※ここら辺の手順はいまいち自信がないのですが(不要なことやってるかもしれません)、とりあえず以下でできるようにはなります。
Pushの設定
対象リポジトリの「リモート」で「右クリック > リモートの作成」を選択します。
- プッシュ構成を選択
- 変更ボタンから上記Push設定と同じように値を設定する
- Ref mappingsを設定して保管する
以上でPush設定が終わりです。
Fetchの設定
orgin配下の緑色の←がついたリポジトリ情報を右クリックし、フェッチの構成を選択します。
これも「共有リポジトリにPush」で設定したのと同じように設定します。
ただし、更新の強制にはチェックをつけないでください。
以上でFetch設定が終わりです。
branch.master.mergeの設定
最後にbranch.master.mergeを設定します。
と言ってもbranch.master.mergeの他にも2つ設定します。
ではリポジトリのプロパティを表示して、以下のプロパティ値を追加していきます。
- branch.master.remote
- branch.master.merge
- branch.master.rebase
rebaseはプロジェクトの方針に従ってください。個人的にはtrueでいいと思います。
以下のようになっていればOKです。
Let's Enjoy Social Coding!
長くなりましたがこれでPullもFetchもPushもできるようになっているはずです。
お疲れ様でした。
つ、疲れた・・・
ちなみに共有リポジトリからクローンしてプロジェクトを作成する場合は、いろんな設定が勝手にされるのでだいぶ楽です。
そこら辺はまた今度書こうと思います。
それではまた。