はじめに
GitHubを用いた開発について、様々な記事がありますが、一連の流れが頭で整理できていなかったので、自分なりにまとめてみました。
GitやGitHubとは何か、初期設定はどうすればいいかについては以下の記事を参考にしてください。
GitとGitHubとは 簡単に理解しイチからMacに導入する
|
GitHubを用いた開発の流れ
GitHubを用いた開発の全体像は以下の図のようにまとめられます。
下のgit checkout -b develop
から始まり反時計回りに進んだ後、git branch -d develop
を終えると再び初めに戻って作業を繰り返していきます。
以降で詳しい説明を以降で行なっていきます。
[追記]2020年、Githubではデフォルトのブランチ名がmasterからmainに変わりました。そのため、以降の説明のmasterを全てmainに置き換えて下さい。
また、それにより、ローカルのデフォルトのブランチ名もmasterからmainに変える必要があります。
ローカルリポジトリ上で下記のコマンドを実行すると、デフォルトのブランチ名を変更できます。
$ git config --global init.defaultBranch main
目次
- リモートを追加(初回のみ)
- 開発用のブランチの作成と切り替え
- 変更をステージに追加
- 変更を記録する(コミット)
- リモートリポジトリ(GitHub)へ送信する
- 変更をmasterブランチに統合(プルリクエスト)
- ブランチの切り替え
- リモートの情報の取得と反映
- 開発用ブランチの削除
1. リモートを追加(初回のみ)
まず、リモートリポジトリの登録を行います。GitHubを開き、新たに作成した空のリポジトリを開きます。
緑のcodeというボタンを押すとURLが表示されるので、右の四角の部分をクリックしてコピーしましょう。
その後、ターミナルでローカルリポジトリのディレクトリに移動し、下記コマンドでリモートの登録を行います。
$ git remote add origin "リモートURL"
2. 開発用のブランチの作成と切り替え
次に、git init
を行ったディレクトリ上でブランチを作成します。下記コマンドで現在いるブランチを確認できます。アスタリスクがついているのが現在のブランチです。
$ git branch
* master
下記コマンドで開発用のdevelopブランチを作成し、ブランチを切り替えることができます。
$ git checkout -b develop
$ git branch
* develop
master
必ずdevelopブランチに切り替えたあと、開発を行いファイルに変更を加えていきます。
masterブランチで開発を行なってしまうと、変更分を正しくリモートに送信できません。
3. 変更をステージに追加
ファイルに変更を加えた後、下記コマンドで変更をステージに追加します。
ステージとはファイルの変更を記録(コミット)する前に一時的に保管する場所のことであり、記録するファイルの選別や保護という役割があります。
追加する対象によって三つのコマンドを使い分けましょう。
$ git add "ファイル名" # 特定のファイルのみを追加する場合
$ git add "ディレクトリ名" # 特定のディレクトリ内のファイルをまとめて追加する場合
$ git add . #変更を加えた全てのファイルを追加する場合
4. 変更を記録する(コミット)
ステージに追加したファイルを記録する操作がコミットです。
コミットはどのような操作を行ったかを明確にするために-mでメッセージ付きで行うことを推奨します。
$ git commit -m "メッセージ"
5. リモートリポジトリ(GitHub)へ送信する
ローカルリポジトリにコミットされた変更分をリモートリポジトリ(GitHub)へ送信します。
このとき、リモート名には最初のステップでの、リモートの登録名を書きます。
ブランチ名は現在いるローカルのブランチ名です。今回はdevelopにあたります。
$ git push "リモート名" "ブランチ名"
$ git push origin develop
pushの際に、GitHubのユーザー名やパスワードを聞かれるかもしれません。
パスワードについては、こちらの記事で取得できる個人用アクセストークンを利用してください。
6. 変更をmasterブランチに統合(プルリクエスト)
pushを行うとGitHub上でCompare&pull requestという表示が出ます。
これをクリックすると、リモートリポジトリのmasterブランチに変更を統合するリクエスト(プルリクエスト)を出す確認画面に移ります。
ここで、右下のCreate pull requestを押すと、プルリクエストが出せます。
プルリクエストを出すと、そのリクエストを許可してmasterブランチに統合(マージ)するかどうかの確認画面に移ります。
許可する場合はMerge pull requestを押してください。すると、delete branchという表示が出てリモートリポジトリ上のdevelopブランチを削除するかを聞かれます。
毎回、開発用のブランチは削除して新たに作ることを推奨するため、dekete branchを押してdevelopブランチを削除しましょう。
7. ブランチの切り替え
マージを終えたあと、ターミナル上で、下記コマンドでローカルのmasterブランチに移動します。
$ git checkout master
$ git branch
* master
develop
8. リモートの情報の取得と反映
そして、リモートリポジトリの情報をローカルのmasterブランチにも反映させます。
$ git pull "リモート名" "リモートのブランチ名"
$ git pull origin master
9. 開発用ブランチの削除
最後に開発用のdevelopブランチを削除しておきましょう。
$ git branch -d "ブランチ名"
$ git branch -d develop
その後、新たな開発用ブランチをmasterブランチから生成してブランチを切り替えておきます。
$ git checkout -b develop
必ず新たな開発用ブランチの生成と切り替えを行なってから別の作業を行って下さい。
これをあとでしようとすると、masterブランチにいることを忘れてmasterブランチ上で変更を加えてしまいます。
まとめ
GitHubを用いた開発の流れについてまとめてみました。
個人で行う場合でも、この手順に沿って開発を進めるとバージョン管理が楽になります。
図にまとめてみると自分でも理解が深まりました。