tyoshikawa1106のブログ

- Force.com Developer Blog -

SourceTree:Salesforceのプロジェクト管理

SourceTreeをつかったSalesforceのプロジェクト管理についてです。Salesforce開発でもGitでバージョン管理することで何かトラブル発生時に元に戻しやすくなったり、過去どういった変更を行ってきたかの確認ができるようになります。


また、ファイルの差分チェックがやりやすくなったりと他にもメリットがたくさんあります。SourceTreeを使うと、このGitのバージョン管理作業がやりやすくなるのですごく便利です。

Salesforceプロジェクト作成

はじめにSaleforceプロジェクトを作成します。 Sublime×MaventMateが便利です。
f:id:tyoshikawa1106:20160517110038p:plain

.gitignoreファイルの用意

.DS Storeなどのシステムファイルがバージョン管理に含まれない用に.gitignoreファイルを用意します。ここはコマンドラインから作成する方が簡単だと思います。giboコマンドが便利です。

$ gibo OSX Windows SublimeText >> .gitignore

f:id:tyoshikawa1106:20160517094031p:plain

下記のファイルが管理対象外になるように指定します。
  • config/ ←新規追加
  • *.sublime-project ← コメントアウトの解除
  • *.sublime-workspace ← そのままでOK

リモートブランチにリポジトリを作成

今回はBitbucketを利用します。
f:id:tyoshikawa1106:20160517094155p:plain

Gitの設定

Gitの初期設定を行います。初期設定コマンドはBitbucketのページでも確認できます。

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

SourceTreeの設定

Gitの設定ができたらSourceTreeの設定を行います。SourceTreeを起動してローカルを選択、ディレクトリのスキャンまたはドラッグ&ドロップで先程作成したSalesforceプロジェクトを追加します。
f:id:tyoshikawa1106:20160517101017p:plain


これでSourceTreeの設定が完了しました。
f:id:tyoshikawa1106:20160517101109p:plain

初回コミット

プロジェクト開始時の既存コードをコミットします。
f:id:tyoshikawa1106:20160517104622p:plain

コミットメッセージは以下のルールが望ましいみたいです。
  • 1行目:タイトル
  • 2行目:空白行
  • 3行目以降:コミット内容の詳細


コミットするとコミット履歴で作業内容を確認できるようになります。
f:id:tyoshikawa1106:20160517104711p:plain

タグの追加

タグは区切りのいい部分の目印です。プロジェクト開始のタグを設定しておきます。
f:id:tyoshikawa1106:20160517105129p:plain


タグを追加しておくとプロジェクトが進んだ際に、タグ設定時とのファイルの差分チェックなどができるようになるので便利です。
f:id:tyoshikawa1106:20160517105212p:plain

リモートブランチにプッシュ

初回コミット分をBitbucketにプッシュします。
f:id:tyoshikawa1106:20160517104803p:plain


これでBitbucketにプロジェクトコードを用意できました。
f:id:tyoshikawa1106:20160517104942p:plain


タグもBitbucketで管理できます。
f:id:tyoshikawa1106:20160517105325p:plain


ここから開発を初めていきます。

開発開始

今回はデモ用に「取引先登録機能」の開発を行います。作業開始前は必ずプル操作を実行して最新情報を取得しておきます。
f:id:tyoshikawa1106:20160517110503p:plain

ブランチの作成

開発を進めるときは必ずブランチを作成してそこで作業を進めます。直接masterで作業してコミットするというのはできる限り控えるようにします。
f:id:tyoshikawa1106:20160517110834p:plain


作成したブランチが選択されていることを確認してから作業を進めます。
f:id:tyoshikawa1106:20160517110911p:plain

取引先登録画面の開発とコミット

取引先登録画面のPageファイルを作成。
f:id:tyoshikawa1106:20160517111459p:plain


コミットは一作業毎に行うようにすると後から問題が発生した際に元に戻しやすくなります。
f:id:tyoshikawa1106:20160517111721p:plain


実装を進めて・・・
f:id:tyoshikawa1106:20160517112305p:plain

f:id:tyoshikawa1106:20160517112334p:plain


コミット。
f:id:tyoshikawa1106:20160517112636p:plain


入力欄を追加して・・・
f:id:tyoshikawa1106:20160517112829p:plain


コミット。
f:id:tyoshikawa1106:20160517113012p:plain


こんな感じです。


ひとまず登録画面の作成が完了したことにします。
f:id:tyoshikawa1106:20160517113122p:plain

作業結果のマージ

問題がなければmasterにマージしてあげます。まずはmasterブランチに切り替えます。
f:id:tyoshikawa1106:20160517113454p:plain


ちなみにブランチを切り替えたとき、コードも自動で切り替わるので便利です。
f:id:tyoshikawa1106:20160517113534p:plain


masterブランチに切り替えた後は、マージしたいブランチを右クリックしてメニューを表示します。その中にマージメニューが用意されています。
f:id:tyoshikawa1106:20160517113649p:plain


確認メッセージが表示されるのでOKを選択。これでマージ完了です。
f:id:tyoshikawa1106:20160517113758p:plain


マージ完了するとブランチでの作業内容がmasterに反映されます。
f:id:tyoshikawa1106:20160517114024p:plain


ブランチを作成して作業を進めることで何か失敗してしまったときに、元のファイルを壊さずに作業を進めることができます。

作業結果のプッシュ

マージ完了後はBitbuketにプッシュします。これで他の人に最新コードを共有できます。
f:id:tyoshikawa1106:20160517114311p:plain


作業内容をきちんとプッシュすることでコンフリクトなどの問題を回避しやすくなります。

不要なブランチの削除

個人的な作業用ブランチなどは不要になったタイミングで削除してあげるとリポジトリが整理されていいと思います。
f:id:tyoshikawa1106:20160517114842p:plain:w300


SourceTreeをつかったSalesforceのプロジェクト管理についてはだいたいこんな感じです。あとはきちんと運用ルール等を決めてそのとおりに作業を進めるようにすれば正しくバージョン管理を行えると思います。


Gitをつかったバージョン管理の開発の考え方ですが、Git Flowという考え方がありSourceTreeにもそれを利用するための機能が用意されているみたいです。

Smart branching with SourceTree and Git-flow | SourceTree Blog

追記

こういう記事も書きました。