概要
共同開発やポートフォリオとしてソースコードを公開することを念頭に置いたアプリケーションを開発する場合、GitHubで管理することが必要となる。その際に発生するGitHubとGitの初期設定についてまとめた。今回はGit-Flowに基づいた開発をすることを想定し、開発を始めるまでを構築していく。このやり方は一例であり、他にもやり方はあると思いますので参考までに。
Git-Flowについて
Git-Flowについての記事はよく見かけるため、ここでは簡単に説明する。大まかにmainブランチ、releaseブランチ、developブランチ、featureブランチが存在する。
- mainブランチ
- 常にリリース可能である安定したブランチ
- releaseブランチ
- リリースが行わる際に発生するブランチ
- リリースバージョンの付与などを行う
- developブランチ
- 開発の中心となるブランチ
- featureブランチの組み込みブランチとしての役割を持つ
- featureブランチ
- developから機能開発を行う際に作成されるブランチ
- 基本的には何か変更行う際にはまずfeatureブランチを作って変更を行い、終わったらdevelopにマージするというプロセスが一般的
Git-Flowでは、用途に応じた様々なブランチが存在するが、今回は開発を始めるための最低限の必要なmainブランチ、developブランチ、featureブランチの作成について述べる。
1. GitHubでの設定
- リモートリポジトリの新規作成
- リポジトリ名、説明文を記載。
- 公開するのか、公開しないのかを選択
- README.md, .gitignore, licenseファイルは今の段階では作成しない
- 記入出来たら"create repository"を押す
2. Gitでの設定
2.1 リモートリポジトリをクローンする
1.で作成したリポジトリをクローンする。
$ git clone https://github.com/Yuki-TU/next.git
Cloning into 'next'...
warning: You appear to have cloned an empty repository.
2.2 README.mdファイルの追加・編集
README.mdファイルを作成する。README.mdは、リポジトリの概要や説明をするためのファイルであり、マークダウン記法に則って記述することができる。
$ touch README.md
$ nano README.md # 好きなエディタで編集
# 概要
これはnext.jsによるプロジェクトです
2.3 コミットする
作成したファイルをコミットする。
$ git add .
$ git commit -m "README.mdの追加"
2.4 GitHubにpushする
mainブランチにリネームし、pushする。pushは、ローカルブランチのリポジトリをリモートリポジトリにアップロードするときに使用するコマンドである。ここでは、origin
がリモートリポジトリのURLを表している。
$ git branch -M main # ブランチ名をmainにリネーム
$ git push -u origin main # -uはリモート追跡ブランチを作成するオプション
3. 再びGitHubでの設定
GitHubの該当リポジトリを見ると、mainブランチが更新されていることがわかる。Git-Flowでは、mainブランチは品質が保証されたリリース用ブランチであり、普段開発を行うブランチはdevelopブランチの方を使用する。以下、developブランチを作成する手順を示す。
3.1 developブランチの作成
create a branchより、mainブランチよりdevelopブランチを作成。
3.2 developブランチをデフォルトブランチに設定する
開発する際のメインブランチはdevelopブランチであるため、デフォルトブランチをdevelopブランチに設定する。GitHubの各種リポジトリのsetting->branch->default branchより変更する。
4. ローカルにdevelopブランチを落としてくる
以下のコマンドを実施することで、developブランチをローカルブランチとして保存することができる。
$ git fetch # リモート追跡ブランチの更新
$ git branch -a # リモート追跡ブランチとローカルブランチの表示
* main
remotes/origin/develop
remotes/origin/main
$ git switch -c develop remotes/origin/develop # リモートリポジトリで作成したdevelopブランチをdevelopという名前でローカルに保存
$ git branch # ローカルブランチの表示
* develop
main
5. featureブランチの作成
最後にfeatureブランチの作成について述べる。まず、developブランチに移動する。そして、pullコマンドを実行して、developブランチを最新の状態にする。次に、developブランチからfeatureブランチ(下記例ではブランチ名:feature/issue#1/create_base_app)を作成し、featureブランチに移動する。この状態で機能を実装するソースコードを記述する。
$ git switch develop # developブランチに移動
$ git pull # fetch + merge(通常はdevelopブランチは最新の状態にする)
$ git switch -c feature/issue#1/create_base_app # developブランチよりfeatureブランチを切って移動
最後に
以上で、developブランチとmainブランチ、featureブランチを作成することができた。あとは、featureブランチ上でコードを作成し、プルリクエスト送り、developブランチにマージするという開発を行えばよい。
間違っている個所等ございましたら、コメントいただけると幸いです。
参考