###目次
はじめに
deploy構成の例
gitを使用する開発流れの紹介
gitローカル操作の紹介
終わりに
はじめに
こんにちは、PanGuのChoです。Salesforceプロジェクトを共同開発する際に、gitをどう言うふうに使うのか、そもそもgitはなんですか、と言う疑問を持っている初心者の方がいらっしゃるかと思います。今回はこれらの疑問を想定し、git関連の知識を紹介したいと思います。
また、deploy構成はプロジェクトの方針次第に大きく変わります。本記事に使用する構成例は汎用的なもので、vscodeにてlwcやapex classを開発、デプロイ、ソース管理の構成になっています。
deploy構成の例
上記の図では、1段目にSalesforceの組織、2段目はローカルフォルダ、3段目はGitHubになっています。説明の便宜上に、gitブランチ名などの名前はSalesforce Sandboxの名前を採用しています。
(1)sfdxにてdeploy
2段目「開発用sandbox1」フォルダにあるソースを、1段目「開発用sandbox1」へdeploy。(vs codeUI上のデプロイ機能と同様)
(2)push
1段目「開発用sandbox1」にてテスト完了後に、2段目「開発用sandbox1」フォルダにあるソースをローカルrepositoryにコミット、そしてGitHubへpush。
(3)pull request
3段目branch「開発用sandbox1」をbranch「結合用sandbox3」へマージ。マージにはGitHubのpull request機能を使用。
※ここでは、3段目branch「開発用sandbox2」は別機能開発のソースを並行管理していることも想定しているが、3段目branch「開発用sandbox2」に関する操作は、3段目branch「開発用sandbox1」と同じのため割愛。
(4)pull
2段目ローカルフォルダ「開発用sandbox3」のソースを最新化する。
※「開発用Sandbox1」にて開発したソースを含めるように。
(5)sfdxにてdeploy
1段目Salesforce「結合用sandbox3」にdeploy。結合テストを行う。
(6)sfdxにてdeploy
(5)結合テストにて保証したソースを、「本番」へdeploy。
(7)backup
2段目ローカルフォルダ「本番」にSalesforce本番のソースを取得。
(8)push
3段目branch「本番」pushことによって、本番のdeploy履歴を管理。
ここまで、汎用的なデプロイ構成をご紹介しました。イメージを掴んだでしょうか?
gitを使用する開発流れの紹介
gitを使用する開発流れを紹介します。下図にある「local repository」は前述の「開発用sandbox1」か「開発用sandbox2」に当てはまります。「remote repository」は共同開発のソースを集約する役目になります。
プロジェクトに参画した際に、すでにgit repositoryが建てられている場合は多いです。既存git repositoryからStartの手順を詳しく説明します。
(1)新機能開発用repositoryをfork(または新branchを切る)
汎用的に下図は新repositoryをforkすると表記しています。実業務のほとんどは新repositoryの代わりに、新規branchになるかと思います。
(2)forked repository(またはbranch)をローカルへclone
(3)ローカルに開発したソースをcommit
(4)push
ローカルに開発したソースを、リモートrepositoryへpush
(5)並行開発
元のrepositoryに、他メンバーやチームによって先に、開発された内容がコミットされたを想定。
(6)pull request
自分が開発を行っているrepositoryまたはbranchを、元のrepositoryへマージ作業は、GitHubのpull requestにて行う。pull requestのpull(引く)と言う言葉は、元repositoryの角度からよるものです。
さて、ここまではgit remoteに絡む操作を紹介しました。いかがでしたか?
gitローカル操作の紹介
gitインストール
ここでは、gitのインストール手順を割愛します。
git --version
git config --global user.name "pangu taro"
git config --global user.email "info@panguinfo.com"
ローカルgit環境の概要
下図のように、4つの領域が別れています。
ローカルrepository作成:非gitフォルダよりgit repositoryを作成する場合
git init
上記コマンドを実行後に、下図のように、それぞれの領域が作られます。
ローカルrepository作成:GitHubよりgit repositoryをcloneする場合
git clone https://github.com/domain/repository.git
上記コマンドを実行後に、下図のように、remote repositoryのコミット履歴を含んだリソースはローカルフォルダに作られます。git initは実行不要です。
stagingエリアにファイルを追加
git add file #該当ファイルのみ
git add . #該当フォルダにあるすべてのファイル
上記コマンドを実行すると、work treeにあるファイルがstagingエリアに追加されます。コミット対象になります。
※SVNなどと違って、コミット都度にこの操作が必要です。
commit
git commit -m "コミットコメント"
上記コマンドを実行すると、stagingエリアにあるファイルがコミットされます。
remote repositoryの設定&確認
GitHubよりgit repositoryをcloneした場合は、git remote add手順は不要です。
git remote add origin https://github.com/domain/repository.git
git remote -v #確認
上記コマンドを実行すると、remote repositoryが設定されます。
remote repositoryへのpush
git push origin master
上記コマンドを実行すると、ローカルrepositoryにコミットしたソースは、remote repositoryへアップロードされます。
終わりに
本記事は全体像をフォーカス、駆け足でSalesforce開発する際に使用するGitのまわりを解説しました。ご参考になりましたでしょうか?具体的なGitコマンド使い方、GitHubへの認証設定方法は割愛しております。このあたりにお気になる方は該当するナレッジサイトをご参照いただければ幸いです。