開発フロー - enpitut2019/dj-yusaku GitHub Wiki

開発フロー

チーム開発ですが、enpitut2019/dj-yusakuで開発を行うのではなく、Forkを行ってPRする方式にします。

参考: https://qiita.com/suhirotaka/items/88ac476e3d2c3f225b08

概要

enpitut2019/dj-yusakuをcloneするのではなく、github.com/enpitut2019/dj-yusakuでForkし、そこで開発を行う。

機能を追加できたら、プルリクエストを送ってenpitut2019/dj-yusakuのmasterに追加されるのを待つ。

詳細

1. enpitut2019/dj-yusakuをFork

https://github.com/enpitut2019/dj-yusaku から右上のForkボタンを押して、フォークします。

すると、<自分のGitHubのid>/dj-yusakuができます。

2. Forkしたリポジトリをclone

端末から以下を実行して、フォークしたリポジトリをクローンします。

git clone https://github.com/<自分のGitHubのid>/dj-yusaku.git

ダウンロードされたリポジトリのディレクトリができるので、そこに移って作業します。

cd dj-yusaku

3. ブランチを切って開発する。

以下を実行して、ブランチを切ります。

git checkout -b <ブランチ名>

ブランチの命名は https://github.com/enpitut2019/dj-yusaku/wiki/コードの書き方とTips#gitのブランチ を参考にしてください。

4. 機能が追加できたらaddして,commitして,(フォークしたリポジトリに)pushする。

新しく機能を追加(もしくは修正)できたら、git addして、git commitしましょう。 出来るだけgit add .git commit -aは使わず、どのファイルをコミットすることになるかgit statusで確認してください。(これは不必要なファイルがコミットされるのを防ぐためです)

(リポジトリで初めてコミットする際は https://github.com/enpitut2019/dj-yusaku/wiki/github用の設定 するといいかも。)

コミットメッセージは https://github.com/enpitut2019/dj-yusaku/wiki/コードの書き方とTips#コミットメッセージ を参考にしてください。

コミットできたらgit push origin <ブランチ名>で、<自分のGitHubのid>/yusaku-appにプッシュしましょう。

重要? pushする前にgit pull --rebase upstream masterすると、後にマージが起こらなくてよい。

5. GitHubでプルリクを作成。

enpitut2019/dj-yusakuのmasterに、自分が作った<ブランチ名>にコミットした変更をマージしてもらえるようプルリクエスト(PR)しましょう。

ダメと言われたら、4をもう一度行ってコメントで知らせましょう。

6. マージされたら、pullする

enpitut2019/dj-yusakuのmasterに機能がマージされたら、それに追従するよう<自分のGitHubのid>/dj-yusakuのmasterを更新します。

git remote addを用いて、https://github.com/enpitut2019/dj-yusaku.gitにupstreamという別名をつけます。

masterブランチに移って、enpitut2019/dj-yusakuのmasterをlocalのmasterに反映させます(pullする)。

git checkout master
git remote add upstream https://github.com/enpitut2019/dj-yusaku.git  # 最初の一回のみ
git pull upstream master

参考: https://qiita.com/taknb2nch/items/521c98690c9bd9afebab
pull = fetch + merge みたいなもの

新たに機能を追加したくなったら3に戻ってこれを繰り返します。

git remote

上を一通り済ませたら、リポジトリのルートでgit remoteすると、以下のようになるはず。

$ git remote
origin
upstream
$
  • origin は あなたがフォークしてできたリポジトリ <自分のGitHubのid>/dj-yusaku
  • upstream は 大元のリポジトリ enpitut2019/dj-yusaku

です。

upstreamにpushすることのないようにしてください。

⚠️ **GitHub.com Fallback** ⚠️