tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:既存Gitリポジトリから始めるSalesforceプロジェクト

ちょっと前にこういう記事を書きました。Salesforceプロジェクトを作成してGitリポジトリにアップする手順についてです。


実際のプロジェクトでは一からリポジトリを用意するのではなく、既にある(他の人がつくった)リポジトリをつかって開発を進める場合がほとんどだと思います。今回はその時の手順についてまとめてみようと思います。


まずはリモートブランチにリポジトリを用意した状態にします。BitbucketにしましたがGitHubでも同じようにできると思います。
f:id:tyoshikawa1106:20160603200930p:plain


次にMavents MateをつかってSalesforceプロジェクトを作成します。
f:id:tyoshikawa1106:20160603201201p:plain

f:id:tyoshikawa1106:20160603201309p:plain


ここまでできたら、Salesforceプロジェクトとリモートブランチのリポジトリを紐付けていきます。


まずはGitリポジトリとして初期化からです。

$ git init

f:id:tyoshikawa1106:20160603201500p:plain


次のremoteコマンドでBitbucketのリポジトリと紐付けます。

$ git remote add origin git@bitbucket.org:<your app>.git

f:id:tyoshikawa1106:20160603201828p:plain


これで紐付けができました。


次はリモートブランチ側のコードの取得を行います。ですが『git pull』だと次のようにエラーとなります。
f:id:tyoshikawa1106:20160603202012p:plain


ちなみに『git pull origin master』だとこうなります。
f:id:tyoshikawa1106:20160603204106p:plain


ではどうすればいいかというと、git fectchとgit resetを使えばいいみたいです。

$ git fetch origin
$ git reset --hard FETCH_HEAD


これでBitbucketのリポジトリにあるコードを取得することができました。(『git log』コマンドを実行するとコミットログが正しく取得できることを確認できると思います。)
f:id:tyoshikawa1106:20160603204233p:plain



ここで『git status』コマンドを実行してみます。するとまだコミットされていないコードが表示されます。
f:id:tyoshikawa1106:20160603204423p:plain


これはSalesforce組織上でHelloWorldページを作成してまだコミットしていない状態のときです。Bitbucket上のコードを取得しながら、Salesforce組織との差分をきちんと管理できていることが確認できました。


あとはこういった差分ファイルを必要に応じてコミットすることでSalesforce組織とリモートブランチ側のコードの差分を無くすことができると思います。
f:id:tyoshikawa1106:20160603205211p:plain


これで既存GitリポジトリのコードをつかってSalesforce開発を進めていく準備ができました。あとは通常通りにブランチ作成やコミット、プッシュと開発作業を進めていけると思います。