> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/ja/narejjibsu/044-github-synchronization.md).

# GitHub同期

**GitHub同期** は [プレミアム機能](/latex/ja/narejjibsu/120-overleaf-premium-features.md)。Overleaf のプレミアム機能は、 [Overleaf Commons](https://www.overleaf.com/for/universities)、グループのメンバー [サブスクリプション](https://www.overleaf.com/for/groups)、および個人向けの所有者 [サブスクリプション](https://www.overleaf.com/user/subscription/plans).

概要

GitHub同期機能を使用すると、Overleafプロジェクトをリモートリポジトリとして機能するGitHubリポジトリに直接リンクでき、両者間で変更をプッシュおよびプルすることができます。GitHub同期は、 [Github.com](https://www.github.com) でのみ使用でき、他のGitHub Enterpriseのインストールには接続できません。

既存のGitHubリポジトリから新しいOverleafプロジェクトを作成するか、既存のOverleafプロジェクトから新しいGitHubリポジトリを作成することで、OverleafプロジェクトをGitHubリポジトリと同期できます。既存のOverleafプロジェクトを既存のGithubリポジトリと同期することはできません。

* GitHub同期は、GitHubアカウントをOverleafアカウントにリンクすることで有効になります
* 既存のGitHubリポジトリから新しいプロジェクトを作成できます
* 既存のOverleafプロジェクトをもとにGitHubでリポジトリを作成できます
* リンクされたプロジェクトとリポジトリは、 **GitHub** オプションを使ってプロジェクトの **メニュー**

### OverleafアカウントをGitHubアカウントにリンクする

GitHub同期機能を使用するには、OverleafアカウントをGithubアカウントにリンクする必要があります。これはOverleafの [アカウント設定](https://www.overleaf.com/user/settings)で行えます。なお、アカウントに関連付けられている特定のリポジトリや組織へのOverleafの接続可否は、GitHubで設定された権限に依存する場合があります。

### GitHubリポジトリから新しいOverleafプロジェクトを作成する

新規プロジェクトメニューからGitHubオプションを選択できます。すると、GitHubアカウントの権限設定に基づいて、GitHub経由でOverleafから参照可能なリポジトリの一覧が表示されます。

![新規作成 github.png](/files/47c5fe355b3e869652fbdf6a04b38e8acdda98ac)

既存のGitHubリポジトリから新しいOverleafプロジェクトを作成する際に留意すべき点がいくつかあります。

* Overleafプロジェクトにはサイズ制限があり、大きなGitHubリポジトリはプロジェクト作成に使用できない場合があります。 [このページ](/latex/ja/narejjibsu/119-overleaf-plan-limits.md) Overleafプロジェクトのファイルサイズとファイル数に適用される制限の概要については、
* OverleafプロジェクトはGitサブモジュールやGit LFSをサポートしていません。

### Overleafプロジェクトから新しいGitHubリポジトリを作成する

Overleafプロジェクトメニューから、同期オプションの一つとしてGitHubを選択できます。すると、Overleafプロジェクトと同期する新しいGitHubリポジトリの名前を入力できるダイアログが表示されます。

![プロジェクトメニュー github.png](/files/8f1632ee5697710207a4b8862b6010ef7bdf993b)

### GitHubとの同期

GitHubとOverleafの同期は自動では行われません。同期オプションは **GitHub** オプションを使ってプロジェクトの **メニュー**をクリックすると表示されます。その時点で、GitHubモーダルにはGitHubからプルすべき新しい変更があるかどうかが表示されます。GitHubへ変更をプッシュするオプションは常に表示されます（注：このオプションは、OverleafとGitHubが最新の状態でも表示されます）。

![GitHubモーダルの画像](/files/03ad59083f318eaff7de6993af3eb02d34817e95)

GitHubへのコミットは、「Overleafの変更をGitHubにプッシュ」ボタンをクリックすると作成されます。このとき、任意でコミットメッセージを指定できます。

* GitHubからOverleaf履歴に入った変更は、作成者が匿名として表示されます。
* OverleafからGitHub履歴に入った変更は、接続されたGitHubアカウント所有者が作成者として表示されます。

### マージの競合を解決する

OverleafとGithubの両方で変更が行われると、Gitがそれらを自動的にマージできないことがあります。たとえば、共同編集者がOverleafで1行を変更し、あなたがGithubリポジトリでも同じ行を変更した場合、Overleafはどちらの版を残すべきか選べないことがあります。

その場合、メインブランチへマージする代わりに、新しいブランチをリポジトリへプッシュします。このブランチには説明的な名前（ブランチ作成日時を含む）が付き、Overleaf上の文書の版が含まれます。GitHubとの同期を試みると、マージの競合を解決する必要があることを知らせるメッセージが表示されます。

![GitHubのマージ競合ダイアログ](/files/58b7f8bc3ad052052ec7645327624b199677a692)

同期を再開するには、Overleafブランチをメイン（デフォルト）ブランチにマージする必要があります。これは、コンピューター上で両方のブランチを取得し、gitまたは他のツールでマージしてから、その結果をGithubに再度プッシュすることで行えます。あるいは、Overleafブランチからプルリクエストを作成し、競合解決機能を使ってGithub上で直接マージすることもできます。どちらの方法も、 [Githubドキュメント](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts).

### GitHub組織内のリポジトリへのアクセス

接続済みのGitHubアカウントに関連付けられたリポジトリとOverleafプロジェクトを同期できるほか、あなたがメンバーであるGitHub組織のプロジェクトとも同期できます。関連するGitHub組織内のリポジトリと同期するには、その組織がOverleaf OAuthアプリケーションによるアクセスを許可する必要があります。

* 組織のメンバーの場合は、以下に記載された手順に従って [こちら](https://help.github.com/articles/requesting-organization-approval-for-oauth-apps/) Overleafアプリが組織にアクセスするための権限をリクエストできます。
* 組織の所有者の場合は、以下に記載された手順に従って [こちら](https://help.github.com/articles/approving-oauth-apps-for-your-organization/) 組織向けにOverleafアプリを承認できます。

### GitHub同期のファイル制限

Overleafプロジェクトには個別のサイズ制限があり、さらに、 [こちら](/latex/ja/narejjibsu/119-overleaf-plan-limits.md)で示されているように、プロジェクト内の総ファイル数にも制限があります。Git自体は1回のコミットで数千ファイルの変更を扱えますが、OverleafのGitHub同期機能で使用されるGitHub APIにも、プッシュまたはプルできるファイル数の制限があります。GitHub同期を使用する場合は、個々のコミットのファイル数を100未満、プロジェクト全体のサイズを100 MB未満に抑えることを推奨します。これらのサイズを超えるプロジェクトでも動作する可能性はありますが、同期上の問題を避けるため、これらの制限内に収めることを推奨します。

### リポジトリからプロジェクトを切断する

単一の既存GitHubリポジトリから複数のプロジェクトを作成することは可能ですが、 **特定のプロジェクトに関連付けられたリポジトリを変更することはできません**。一度プロジェクトがリポジトリにリンクされると、そのリンクを解除して新しいリポジトリの作成に使うことはできません。特定のプロジェクトから新しいリポジトリを作成したい場合は、まずそのプロジェクトの新しいコピーを作成し、そのコピーから新しいリポジトリを作成する必要があります。

### 既知の制限

**ブランチ**: Overleaf の Git システムはブランチをサポートしていません。

**シンボリックリンク**: OverleafのGitシステムはシンボリックリンクを扱いません。シンボリックリンクはOverleafプロジェクトにプッシュできますが、通常のファイルに変換され、次にプロジェクトをプルしたときにローカルのシンボリックリンクを上書きします。

**ファイル権限**: OverleafのGitシステムは実行権限を保持しません。GitHub同期で、GitHub上で実行ビットが付いたファイルがOverleafに同期されると、Overleafによって自動コミットがトリガーされ、ファイル権限がリセットされます。

**Git LFS**: OverleafプロジェクトはGit Large File Storageをサポートしていません。

**Gitサブモジュール**: Overleafプロジェクトは他のリポジトリ内でGitサブモジュールとして機能できますが、他のGitサブモジュールを含むことはできません。ほかのプロジェクトのファイルを参照するには、別のプロジェクトから追加する機能の使用を推奨します。

**変更履歴の追跡とコメント**: 残念ながら、GitHubからOverleafへのプルにより、変更履歴やコメントが失われたり移動したりする可能性があります。そのため、GitHubでの活発な作業と、変更履歴やコメントの使用を混在させることは推奨しません。

**GitHub EnterpriseまたはGitLabとの直接同期:** Overleafで使用されるGitHub APIは、github.comでホストされているリポジトリにのみ接続できます。 [Overleaf Git連携](/latex/ja/narejjibsu/040-git-integration.md) 機能を使って個別にインポートすることはできません。

**既存プロジェクトを既存リポジトリに接続する**: 既存のOverleafプロジェクトを既存のGithubリポジトリと同期することはできません。

**GitHubへのプッシュの作成者**: Overleafが認識している唯一のGithubユーザーは、Overleafアカウントにリンクされ、そのプロジェクトを所有しているGitHubアカウントのユーザーです。すべてのコミットは、明示的にそのユーザーの識別情報を使ってコミットを行うGitHub APIを使用して作成されます。そのため、すべてのコミットはGitHubのGit履歴上、リンクされたユーザーからのものとして表示されます。Overleafの履歴では、変更は「Anonymous (via GitHub)」として表示されます。

**Git履歴とOverleaf履歴:** Overleaf側の変更は、GitHubコミットと1対1で対応しません。Overleaf側では複数のユーザーが変更を行えますが、同期がトリガーされると、これらの変更はGitHubに接続されたユーザーの下で単一のコミットとしてまとめられます。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/ja/narejjibsu/044-github-synchronization.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
