ナレッジベース

GitHub リポジトリとの双方向同期

サイトに対して行った変更はご自身のレポジトリでのコミットになり、そこにプッシュした内容がサイトに反映されます。これは無料で、双方が同時に変更を行った場合には次のような処理が行われます。

ご自身のGitHubアカウントをサイトに接続すると、双方向で同期状態が維持されます。この機能は無料で、有効にするまでオフになっており、当社がコミットするのはお客様ご自身が所有するアカウントのリポジトリのみで、当社のリポジトリにコミットすることは一切ありません。

同期される対象

ファイルマネージャー、SFTP、WordPressテーマエディター、SSHセッションなど、どのような方法であれ、サイトのファイルに変更を加えると、その変更はリポジトリへのコミットとなります。お客様からの通知は不要です。サイトと前回のコミットを比較し、その差分をプッシュします。

逆に、接続されたブランチへのプッシュはサイトに反映されます。

コミットされない対象

wp-config.phpは、意図的かつ恒久的に除外されます。データベースのパスワードや認証用ソルトが保持されているため、gitは履歴を永久に保持し続ける性質上、たとえプライベートリポジトリであっても、リポジトリに含めるべきではありません。

また、.envファイル、鍵と証明書、アップロードフォルダー、キャッシュ、node_modulesも除外されます。リポジトリはサイトのソースであり、バックアップではありません。 メディアファイルはすでに保管されているバックアップに含まれるものであり、ここに配置すると、プッシュのたびに処理が遅くなり、変更内容の確認が困難になります。

双方向で変更が行われた場合

これは一読価値のある問題です。例えば、ファイルマネージャーでファイルを編集している間に、同僚が同じリポジトリに変更をプッシュしたとします。

処理は中断されます。自動マージや、いずれかのデータの上書きは行われません。 サイトの[デプロイ]タブに「リポジトリに未確認の変更があります」と表示され、確認が必要なコミット名が示された状態で待機します。待機中も双方のデータが失われることはありません。お客様の編集内容はサイト上に残り、同僚のコミットもリポジトリに残ったままとなります。

その後、次のいずれかを選択します。

  • このサイトのファイルを維持する — お客様のバージョンが相手のバージョンに上書きされます。相手のコミットは履歴に残るため、データが消去されることはありません。
  • リポジトリを使用し、サイトの変更を破棄する — リポジトリのバージョンがサイトに適用され、ここで行った変更は破棄されます。この操作はデータを上書きするため、自動的に実行されることはなく、意図的にクリックしていただく必要があります。

意図的に「自動マージ」のオプションは用意されていません。当社が自動マージを行うと、ライブサイト上で、どちらの方も事前に確認していない、誰も作成していないファイルが生成されてしまうためです。

同期が停止する原因

  • ご自身のGitHubアカウントが接続されていない場合。 接続されるまでスイッチはオフのままになります。
  • 確認待ちの状態である場合。 上記の通り、一時停止状態は自動的には解除されません。
  • アカウントが正常な状態ではない場合。 請求状況が最新に更新され次第、同期は自動的に一時停止から再開されます。データが失われることはありません。

[デプロイ]タブには、何も変更がなかったものも含め、直近の同期履歴が表示されます。そのリストが空であり、同期がオンになっている場合、接続されたアカウントにリポジトリへの書き込み権限がない可能性が最も高いため、アクセス権限を確認して再接続してください。

同期対象の選択

デフォルトではサイト全体が同期されます。WordPressサイトの場合、これは通常望ましい動作ではありません。作成も編集もしないWordPressコアのすべてのファイルが対象になってしまうためです。「このフォルダーのみを同期」をテーマ(例:wp-content/themes/my-theme)に設定すると、残りの部分は同期対象外になります。

まだ解決しませんか?

すべてのプランにサポートが含まれており、お客様の母国語でお答えします。

サポートに連絡 すべての記事