開発フロー - enpitut2019/dj-yusaku GitHub Wiki
チーム開発ですが、enpitut2019/dj-yusakuで開発を行うのではなく、Forkを行ってPRする方式にします。
enpitut2019/dj-yusakuをcloneするのではなく、github.com/enpitut2019/dj-yusakuでForkし、そこで開発を行う。
機能を追加できたら、プルリクエストを送ってenpitut2019/dj-yusakuのmasterに追加されるのを待つ。
https://github.com/enpitut2019/dj-yusaku から右上のForkボタンを押して、フォークします。
すると、<自分のGitHubのid>/dj-yusakuができます。
端末から以下を実行して、フォークしたリポジトリをクローンします。
git clone https://github.com/<自分のGitHubのid>/dj-yusaku.git
ダウンロードされたリポジトリのディレクトリができるので、そこに移って作業します。
cd dj-yusaku
以下を実行して、ブランチを切ります。
git checkout -b <ブランチ名>
ブランチの命名は https://github.com/enpitut2019/dj-yusaku/wiki/コードの書き方とTips#gitのブランチ を参考にしてください。
新しく機能を追加(もしくは修正)できたら、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
すると、後にマージが起こらなくてよい。
enpitut2019/dj-yusakuのmasterに、自分が作った<ブランチ名>にコミットした変更をマージしてもらえるようプルリクエスト(PR)しましょう。
ダメと言われたら、4をもう一度行ってコメントで知らせましょう。
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
origin
upstream
$
- origin は あなたがフォークしてできたリポジトリ <自分のGitHubのid>/dj-yusaku
- upstream は 大元のリポジトリ enpitut2019/dj-yusaku
です。
upstreamにpushすることのないようにしてください。