Skip to content
yu-tang edited this page Jul 20, 2011 · 7 revisions

#コミット手順

コミットしたい

3つの方法があります。

  1. コミッタになる

    vanillaforums-ja 宛てに「コミッタ希望」と書いてメッセージを送ってください。特に資格審査的なものはありません。

  2. プルリクエストを送る

    Garden リポジトリをフォークして必要な修正を行い、vanillaforums-ja 宛てにプルリクエストを送ってください。

  3. メッセージ/Issues でリクエストする

    vanillaforums-ja 宛てにご希望の内容を書いてメッセージを送ってください。あるいは Issues に登録してください。

すべて、GitHub のアカウントが必要です。

ブランチの役割

まだ試行錯誤中のため、以下の説明は今後修正される可能性があります。

  • master

    本家 (HQ) のリリース用ブランチ。プル専用プッシュ禁止です。

  • unstable

    本家 (HQ) の開発用ブランチ。プッシュは可能ですが、本家へのプルリクエスト専用です。

  • master-ja

    日本語版のリリース用ブランチ。派生元は master ブランチ。リリース時以外はプル専用

  • develop

    日本語版の開発用ブランチ。派生元は master-ja ブランチ。

上記以外のブランチは、本家からフォークした際に付いてきただけで、使用されていません。

通常、日本語版の開発で使用するのは develop ブランチのみです。master-ja ブランチはリリース(バージョンアップ)時にのみ使用します。

また本家へプルリクエストを送る場合のみ、unstable ブランチを使用します。

Garden リポジトリをローカルに複製する

以下の手順は、Windows 版の Git Bash 上での操作を前提としたものです。

環境やツールが異なる場合は、適宜読み替えてください。

なお Git 自体の導入については、下記を参照してください。

Help.GitHub - Set Up Git Win OSX Linux


まず親ディレクトリを作成します。この中に、Garden リポジトリを複製します。Garden リポジトリ自体のフォルダ (Garden/) は、複製時に作成されますので、ここで作るのはあくまでその親ディレクトリです。名前は何でもいいですが、ここではとりあえず vanillaforums-ja にしておきます。 このディレクトリは別に GUI で作っても構いません。というか、Windows OS だったらふつうに Windows エクスプローラ上で作成するでしょう。

mkdir vanillaforums-ja

カレントディレクトリを移動します。

cd vanillaforums-ja

リモート リポジトリをローカルに複製します。

git clone [email protected]:vanillaforums-ja/Garden.git

途中で SSH 公開鍵の入力を求められます。

ネットワークの状態にもよりますが、オブジェクト数が多いのでデータの取得にはあるていど時間がかかります。

これで Garden リポジトリを複製できました。

では Garden リポジトリに移動してみます。

cd Garden

リモートの一覧を確認します。

git remote -v

こんな感じの出力になると思います。

origin  [email protected]:vanillaforums-ja/Garden.git (fetch)
origin  [email protected]:vanillaforums-ja/Garden.git (push)

当たり前ですが、origin しかありません。 本家からもプルしたいときがあるので、リモート hq (本家) を追加 (直接プッシュすることはないので、git プロトコル指定) します。

git remote add hq git://github.com/vanillaforums/Garden.git

リモートが正しく追加されたか確認してみます。

git remote -v

以下のように出力されたら、正常です。

hq      git://github.com/vanillaforums/Garden.git (fetch)
hq      git://github.com/vanillaforums/Garden.git (push)
origin  [email protected]:vanillaforums-ja/Garden.git (fetch)
origin  [email protected]:vanillaforums-ja/Garden.git (push)

日本語版の開発をする

翻訳コードを一箇所直したいていどなら、develop ブランチを直接修正しても構いませんが、あるていど以上の規模の修正は、トピック ブランチを切って作業することになります。

ブランチ名は、目的が分かりやすい名前(例 input-formatter-hatena)にするか、または Issues に登録されている課題に関連している場合は Issue 番号(例 #123)にするとよいです。

以下のコマンドでは、develop ブランチを元にしてトピック ブランチ mytopic を作成し、切り替えます。

git checkout -b mytopic develop

topic ブランチに対して、ローカルで作業します。

開発が終了したら、成果を develop ブランチにマージします。

まず develop ブランチに移動します。

git checkout develop

no fast-forward でマージします。

git merge --no-ff mytopic

マージし終わったので、用済みの mytopic ブランチを削除します。

git branch -d mytopic

develop ブランチをリモートへプッシュします。

git push origin develop

もし開発中に他の誰かがリモートを更新していて、エラーでプッシュできない場合は、最新の develop ブランチから変更を取得して rebase します。

git pull --rebase origin develop

その後、プッシュしなおしてください。

なお、数人で共同作業するとか、あるていど長期にわたって作業する場合は、トピックブランチをリモートへプッシュして公開しても構いません。

その場合、初回のプッシュ時は u オプションをつけて、追跡セッティングも行ってください。

git push -u origin mytopic

参考:見えないチカラ: 【翻訳】あなたの知らないGit Tips

本家と同期を取る

master ブランチと unstable ブランチは、定期的に本家と同期を取るのが望ましいです。

master ブランチは、本家がバージョンアップされたタイミングで同期を取ります。

unstable ブランチは、プルリクエストを目的とした開発の前後で同期を取るとよいでしょう。

以下は master を対象とした同期手順です。unstable を対象とする場合はブランチ名を読み替えてください。

まず git branch で現在のブランチを確認し、master にいなければ git checkout master で master ブランチに移動してください。ちなみに git branch -a で、リモートを含む全ブランチを表示します。

以下のコマンドで、本家の master ブランチから変更を取得して rebase します。

git pull --rebase hq master

本家にプルリクエストを送る

まず最初に、Vanilla Forums にログインした状態でコントリビュータ同意書をよく読んで、同意できる場合には送信してください。

この手順を経てからでないと、プルリクエストは受け付けられませんので、ご注意ください。

執筆中...

リリースする

執筆中...