Title: コードリポジトリ (Git)
Author: Aki Hamano
Published: 2023年10月6日
Last modified: 2023年10月8日

---

# コードリポジトリ (Git)

## この投稿内

 * [概要](https://ja.wordpress.org/team/handbook/core/contribute/git/?output_format=md#%e6%a6%82%e8%a6%81)
 * [リポジトリの構造](https://ja.wordpress.org/team/handbook/core/contribute/git/?output_format=md#%e3%83%aa%e3%83%9d%e3%82%b8%e3%83%88%e3%83%aa%e3%81%ae%e6%a7%8b%e9%80%a0)
 * [パッチ](https://ja.wordpress.org/team/handbook/core/contribute/git/?output_format=md#%e3%83%91%e3%83%83%e3%83%81)
    - [ユニットテスト](https://ja.wordpress.org/team/handbook/core/contribute/git/?output_format=md#%e3%83%a6%e3%83%8b%e3%83%83%e3%83%88%e3%83%86%e3%82%b9%e3%83%88)
    - [Git を使用するときの注意点](https://ja.wordpress.org/team/handbook/core/contribute/git/?output_format=md#git-%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%99%e3%82%8b%e3%81%a8%e3%81%8d%e3%81%ae%e6%b3%a8%e6%84%8f%e7%82%b9)

[↑ ページの先頭へ戻る](https://ja.wordpress.org/team/handbook/core/contribute/git/?output_format=md#wp--skip-link--target)

WordPress の貢献者は、**Git** または [SVN](https://ja.wordpress.org/team/handbook/core/contribute/svn/)
で作成したパッチを提出できます。このドキュメントは、**Git** オプションにフォーカス
しています。

## 󠀁[概要](https://ja.wordpress.org/team/handbook/core/contribute/git/?output_format=md#%e6%a6%82%e8%a6%81)󠁿

[Git](https://git-scm.com/) は、もともと Linus Torvalds が Linux カーネルの管理を
支援するために作成した分散型バージョン管理システムです。

WordPress の標準的なリポジトリは Subversion で管理されています。Git を使い慣れた
開発者をサポートするために、公式で最新の WordPress リポジトリ Git ミラーは `git://
develop.wordpress.org/` と `https://github.com/WordPress/wordpress-develop` で利用
できます。

**注意してください:** 多くの人は、パッチの管理に `git` を使うほうが簡単だと考えてい
ますが、GitHub に提出されたプルリクエストはマージされません。パッチは GitHub のプルリクエスト
で作成・レビューできますが、**必ず** Trac チケットと関連付けられている必要があり
ます。この意味をよりよく理解するために、[コードレビューのための GitHub プルリクエストのページ](https://ja.wordpress.org/team/handbook/core/contribute/git/github-pull-requests-for-code-review/)
を参照してください。

## 󠀁[リポジトリの構造](https://ja.wordpress.org/team/handbook/core/contribute/git/?output_format=md#%e3%83%aa%e3%83%9d%e3%82%b8%e3%83%88%e3%83%aa%e3%81%ae%e6%a7%8b%e9%80%a0)󠁿

WordPress の Git ミラーは、コードベースの完全な履歴を含んでいます。Subversion の
各コミットは、Git のチェンジセットで示されています。プロジェクトの履歴を見るには、`
git log` ユーティリティを使います。リポジトリのレイアウトは次のとおりです。

 * SVN の **trunk** に相当する **trunk** ブランチです。これは最先端のブランチで、
   次のメジャーリリースのアルファ版を含んでいます。特別な場合を除き、貢献者は trunk
   ブランチに対してパッチを準備すべきです。
 * 各メジャーリリースシリーズに対応するブランチが存在し、そのシリーズのバージョン
   の最初の2桁の数字を使って名前が付けられています。たとえば、4.5.1は `4.5` ブランチ
   からリリースされています。
 * WP のすべてのリリース (1.5.0以降) は Git タグで表されています。一覧を見るには`
   git tag` を使ってください。

## 󠀁[パッチ](https://ja.wordpress.org/team/handbook/core/contribute/git/?output_format=md#%e3%83%91%e3%83%83%e3%83%81)󠁿

WordPress の改善やバグフィックスの提案は、**パッチ** として提出する必要があります。
[パッチ](https://make.wordpress.org/core/glossary/#patch)とは、コードの変更点を記述
した特別なテキストファイルのことで、追加、削除、変更されたファイルや行を特定でき
ます。これは、(差分ファイルを生成する UNIX コマンドにちなんで) **diff** とも呼ば
れます。パッチは `.patch` または `.diff` という拡張子を持っています。パッチファイル
は、プロジェクトの公式バグトラッカーである [WordPress Trac](https://core.trac.wordpress.org/)
に提出できます。

`git` クライアントを使って、以下のようにパッチファイルを作成できます。

 1. リポジトリをローカルマシンにクローンします: `$ git clone git://develop.git.wordpress.
    org/ /path/to/wordpress-develop`
 2. 作業用ブランチを作成します (`trunk` は常に公式コードの最新バージョンであるべきです
    ので、変更しないほうが良いでしょう)。ローカルでのチェックアウトを整理するために、
    ブランチ名の一部として Trac チケット番号を使用することを推奨します。例: `$ git 
    checkout -b 30000-add-more-alots`
 3. コードベースに変更を加えます。変更をステージ (`git add`) して、コミット (`git commit`)
    してください。[公式の git ドキュメント](https://git-scm.com/docs/gittutorial)に
    は、これに関するチュートリアルがあります。
 4. ローカルブランチと trunk ブランチの差分を確認するには、`git diff` を使用します:`
    $ git diff trunk 30000-add-more-alots` (脚注)
 5. Trac にパッチを提出する準備ができたら、`git diff` を使用してパッチファイルを生成
    しますが、`.diff` ファイルとして保存するように指定します。一般的に、ファイル名は
    あなたが作業しているチケット番号で、拡張子は `.diff` にしてください (すでにパッチ
    があるチケットでは `.2.diff` や `.3.diff` などになります)。コマンドの例: `$ git
    diff trunk 30000-add-more-alots > 30000.diff`
 6. パッチを適切な Trac チケットにアップロードしてください。

### 󠀁[ユニットテスト](https://ja.wordpress.org/team/handbook/core/contribute/git/?output_format=md#%e3%83%a6%e3%83%8b%e3%83%83%e3%83%88%e3%83%86%e3%82%b9%e3%83%88)󠁿

Trac に投稿する前に [PHPUnit テストスイート](https://ja.wordpress.org/team/handbook/core/testing/automated-testing/phpunit/)
を実行すること (そしてパッチのユニットテストを書くこと) を強く推奨します。それにより、
コミッターがあなたの変更をレビューし、コミットすることが何倍も簡単になります。

`git` からリポジトリをダウンロードすると、importer プラグインに関連するいくつかの
PHPUnit テストが失敗します。これを修正する方法は次のとおりです。これは `tests/phpunit/
data/plugins/wordpress-importer` ディレクトリが `git` リポジトリに含まれていない
ことが原因です。

    ```notranslate
    cd /path/to/wordpress-develop
    cd tests/phpunit/data/plugins/
    svn co \
        https://plugins.svn.wordpress.org/wordpress-importer/trunk/ \
        wordpress-importer
    ```

### 󠀁[Git を使用するときの注意点](https://ja.wordpress.org/team/handbook/core/contribute/git/?output_format=md#git-%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%99%e3%82%8b%e3%81%a8%e3%81%8d%e3%81%ae%e6%b3%a8%e6%84%8f%e7%82%b9)󠁿

脚注: 前回パッチを作成したときから `trunk` ブランチが変更された場合 (たとえば最新
のコードを取り込んだ場合)、最新のコードに対してブランチの [rebase](https://git-scm.com/book/en/v2/Git-Branching-Rebasing)
を行う必要があります。これは、パッチを最新の状態に保つためのすばらしい方法であり、
svn よりも Git の方がずっと簡単です。以下は、`trunk` ブランチを更新してパッチを最新
のコードに更新するためのコマンドの例です (最初に[あなたのリポジトリにコミットされていない変更がないこと](https://stackoverflow.com/questions/52704/how-do-i-discard-unstaged-changes-in-git)
を確認しましょう)。

    ```notranslate
    git fetch origin
    git checkout origin/trunk -B trunk
    git checkout 30000-add-more-alots
    git rebase trunk
    git diff trunk 30000-add-more-alots > 30000.x.diff
    ```

[原文](https://make.wordpress.org/core/handbook/contribute/git/) / [日本語訳](https://github.com/jawordpressorg/core-handbook/blob/main/core/contribute/git.md)

公開日

2023年10月6日

最終更新

2023年10月8日

[  前へ: コードリファクタリング](https://ja.wordpress.org/team/handbook/core/contribute/code-refactoring/)

[  次へ: コードレビューのための GitHub プルリクエスト](https://ja.wordpress.org/team/handbook/core/contribute/git/github-pull-requests-for-code-review/)