前提
- Gitインストール済み
- GitHubインストール済み
- 新規アプリケーション作成直後を想定
ローカルリポジトリを作成する
まずは作ったアプリのディレクトリに移動し、ローカルリポジトリを作成します。
# ターミナルで下記コマンドを実行
% git init
このコマンドで、リポジトリや設定ファイルなどが作られます。
作ったファイルをステージに追加する
作成されたファイルをステージに追加します。(自分はrailsを使っているので、rails newなどで作成されたファイルを指します。)
# ターミナルで下記コマンドを実行
% git add .
変更がステージに追加されているかどうかはgit statusコマンドを実行するとわかります。
ファイルをコミットする
ステージに変更を追加した後に、コミットしていきます。
今回は初めてのコミットなので、コミット名を"first commit"にしています。
# ターミナルで下記コマンドを実行
% git commit -m "first commit"
GitHubにリポジトリを作成
次にリモートリポジトリを作成します。
GitHubにアクセスして、マイページの Repositoriesからnewボタンを押してリポジトリを作っていきます。
new ボタンを押すとしたの写真のページに飛ぶので、Repository nameに適当なアプリの名前を入力して、Create repositoryを押します。
作成後は下の写真のgit remote add origin https://github.com/ユーザー名/アプリ名の箇所をコピーしてターミナルに貼り付けます。
# ターミナルにコピーしてきたものを貼り付けて実行
% git remote add origin https://github.com/ユーザー名/アプリ名
リモートリポジトリにプッシュする
# ターミナルで下記コマンドを実行
% git push origin master
これで、ローカルリポジトリの内容をリモートリポジトリに反映させることができます。
ブランチを切って作業する
最初のアプリ雛形をリモートリポジトリのmasterブランチにpushできた状態なので、ここからは機能ごとにブランチを切って作業していきます。
# ターミナルで下記コマンドを実行
% git checkout -b ブランチ名
このコマンドを実行すると、ブランチを作成し、切り替えてくれます。
ちなみにブランチを作成せずに切り替えたい場合はgit checkout ブランチ名で切り替えられます。
ブランチを切り替えた後は、実装したい機能を機能を実装していくと思いますが、ファイルの変更はこまめにステージに追加→コミットしていきましょう。
# ステージ追加のコマンド
% git add .
% git add ファイル名
% git add ディレクトリ名
# コミットするコマンド
% git commit -m "適当なコミットメッセージ"
# 下記のコマンドでもコミットできるが、エディターかターミナルでコミットメッセージ入力を求められる
% git commit
リモートリポジトリにプッシュする
実装が完了したら、リモートリポジトリにプッシュしていきます。
% git push origin 作業中のブランチ名
プルリクエストを作成する
リモートリポジトリにプッシュしたら今度はプルリクエストを作成していきます。
GitHubのマイページにアクセスしてください。
作成中のアプリのリポジトリのページから、Pull requestsを選択、New pull requestボタンを押してください。
すると下記写真のページに飛ぶので、base:をmaster、compare:を作業したブランチ名へ変更してCreate pull requestボタンを押しましょう。
マージする
ここまでで、プルリクエストが作成されました。
本来であればここで、コードレビューが入ると思われますが、当然独学ではレビュワーはいないので、確認後は好きなタイミングでマージして、リモートのmasterブランチに変更を反映させましょう。
コンフリクトが起きていなければ、したの写真のMerge pull requestボタンが押せるはずなので、押してマージしていきましょう。
ローカルリポジトリのmasterブランチに変更を反映させる
ここまでで、リモートリポジトリのmasterブランチには最新の変更が反映されています。
最後にローカルリポジトリのmasterブランチにリモートリポジトリのmasterブランチの内容を反映させていきます。
ローカルでmasterブランチに移動して、順番に下記コマンドを実行しましょう。
# masterブランチへ移動
% git checkout master
# リモートの情報をとってくる
% git fetch origin master
# fetchで取得した情報をマージする
% git merge origin/master
これで、一通りの流れは終了です。
基本的に各機能ごとにブランチを切ってこの作業を繰り返していくことになると思います。
以上です。
お読みいただきありがとうございました。



