自分自身が、GitHubの初心者なので
Rubyチーム開発の手順として、忘備録としてまとめます。
GitHubのアカウントを持っていて、GitHub Desktopもダウンロードしている
ことを前提としています。
もし、何か間違っていることがあれば教えていただきたいです。
最初に、アプリの雛形を作成します(デプロイする人が作成をします)。
ターミナル
% rails _6.0.0_ new アプリ名 -d mysql # mysqlデータベースでの開発
config/database.yml
default: &default
adapter: mysql2
encoding: utf8 # encodingを変更。
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password:
socket: /tmp/mysql.sock
ターミナル
% rails db:create # データベースを作成
これで、アプリの雛形が完成しました。
ここからは、GitHUbにデータを紐付ける作業をしていきます。
以下の手順で作業していきます。
①GItHub Desktop から 先ほど作成したアプリのローカルリポジトリを作成。
左上の「Current Repository」→「Add」→「Add Existing Repository」を選択
②ターミナルから該当ディレクトリへ行き、「git init」コマンドを実行。
これをすることで、該当アプリがgit管理下に置くことができる。
③ターミナルより以下コマンドを入力
git add 該当アプリ.rb
このコマンドを入力することで、インデックスに追加されることになリます。
念の為以下コマンドを入力
% git status
On branch master # git statusをすると、以下文が出たら、全てインデックスに移動済
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: 該当ファイル.rb
Untracked files:
(use "git add <file>..." to include in what will be committed)
site/
④GItHub Desktop から git-app のローカルリポジトリを作成。
左上の「Current Repository」→「Add」→「Add Existing Repository」を選択。
chooseから該当アプリを選択、「Add Repository」をクリック。
⑤ローカルリポジトリにある全てのファイルを選択してコミットする。
その際のコミットメッセージは、なんでも良いが、迷うのであれば「Initial commit」とする。
⑥リモートリポジトリと結びつける。
GitHubDesktopより[Publish repository]ボタンをクリックすると
GitHub のリモートリポジトリが作成される。
⑦ここで リモートのGitHub のトップページに移動。
GitHub の Your repositories の欄に 該当アプリ があれば成功。
===========
ここまでで、アプリの雛形とGitHubへの紐付けが終了です。
次に、チームで開発するために、別のメンバーが作成していくを書いていきます。
①別のメンバーは該当アプリをフォークして、クローンをする。
GitHub(リモート)の該当アプリのページへ飛び、URLをコピー。
右上にあるforkボタンを押す。→フォークされる。
ターミナルでcloneしたいフォルダまで行き、以下のコマンドを実行。
git clone コピーしたアプリのURL →クローンされる。
これで、アプリがクローンされる。
②コミットをする。
クローンした後、空のコミットをする。
しかし空のコミットは、GitHubデスクトップからコミットできないので
ターミナルから以下のコマンドを入力してコミットをする。
git commit -m 'initial commit'
必ず最初にコミットをしなければいけない訳ではないが、
この後、プルリクエストを出すにはコミットをしておかなければならない。
プルリクエストも別に出さなくても良いが、プルリクエストを出すことによって
別のチーム開発者に、今ここを実装しているといったアピールができるので
コンフリクトを減らすことができる。
つまり、コンフリクトを減らしたい→その為にプルリクエストを出しておきたい→その為に最初に
コミットを出しておく。
③コミットをしたら、GitHubDesktopから、マスターブランチから新しくトピックブランチを切り
プルリクエストを出す。ブランチ名はこれから実装するであろう内容にする。
タイトルにWIP(作業中)をつける。
WHAT WHY で書くとわかりやすい。(マークダウンで書くのが望ましい)
プルリクエストを出すことで、他のメンバーに自分が実装している場所をアピールすることができる。
マスターブランチでプルリクエストを出さないように注意。
④ トピックブランチから、開発を開始する。
⑤完成したら、GitHubデスクトップより、コミットをする。
⑥他のチームメンバーにLGTMをもらったら、WIPの記述をなくす。
もしくは、プルリクエストをクローズする。リモートの下の方にボタンがある。
⑦プッシュする。
⑧アプリ開発者(デプロイする人)にマージしてもらう。
マージしたら、プルリクが溜まらないようにデリートするのがおすすめ。
⑨ローカルリポジトリにプルしたいので、
GitHubデスクトップのブランチをマスターブランチに変更して、プルをおす。
こうすることで、最新版のデータを吸い上げることができる。
⑩ローカルリポジトリが最新のデータになったので
再度、トピックブランチを切って、次の開発を進めていく。
=======
GitHubは、最初はなかなか慣れない人が多いと聞きました。
順を追って確認しながら進めていくのがおすすめです。
みなさん、一緒に頑張りましょう!