Gitを利用して開発する手順(初期設定)
はじめに
Zenn初投稿です。
自分はQiitaしか知らなかったのでQiitaにばかり書いていたのですが、最近はZennという情報共有サイトも熱いということで、どちらも1度は使ってみてそれで今後どちらを使い続けようか判断しようかと思います。
今回は、「Gitを用いた開発手順」をほぼ自分用の備忘録として残しておきたいと思います
大まかな流れ
- 新規アプリを作成する(
rails newやcreate-react-appなど)- この時点で
.gitファイルまで作成されている
- この時点で
- GitHubでリモートリポジトリを作成する
-
git initコマンドを実行して初期化する(省略可) -
git add .コマンドでカレントディレクトリ以下をステージに上げる -
git commit -m "コミットメッセージ"でローカルリポジトリにコミット - GitHub上のリモートリポジトリとローカルリポジトリを紐付ける(
git remote add origin リモートURL)&git branch -M main -
git push -u origin masterコマンドでリモートリポジトリにpushする - 完了!
詳しい手順
1.新規アプリを作成する
自分の場合は、RailsかReactで作成することになるので以下のような感じですね。DBなどのところはお好みで。
# Railsの場合
$ rails new アプリ名 -d mysql
# Reactの場合
$ create-react-app@latest アプリ名
2.GitHubでリモートリポジトリを作成する
GitHub上にリモートリポジトリを作成します。「Repositories」から「New」を押してリポジトリの名前を決め、「Create repository」を押してリポジトリを新規作成します。
他に書くところがあるとしたら「Description」のエリアぐらいでしょうか。
3.git initコマンドを実行する(省略可)
rails newやcreate-react-appをした時点で.gitファイルは作成されているので、この工程は省いて大丈夫です。
4.5.git add . と git commit -m "コミットメッセージ"
作成したアプリのディレクトリに移動した後、git addコマンド(もしくはgit add -Aコマンド)でステージにあげ、git commitコマンドでローカルリポジトリにコミットします。
$ git add . # ステージにあげる
$ git commit -m "コミットメッセージ" # ローカルリポジトリにコミットする
6.GitHub上のリモートリポジトリとローカルリポジトリを紐付ける
まだローカルリポジトリと、2で作成したリモートリポジトリが紐付いていないので、git remote add origin リモートURLでGitHub上のリモートリポジトリと紐付けます。
$ git remote add origin リモートURL
$ git branch -M main # 意味:現在のブランチの名前を main に変更する(masterブランチから名前を変える)
7.git push -u origin masterコマンドでリモートリポジトリにpushする
あとはgit push -u origin masterコマンドでリモートリポジトリにpushします。これで完了です!
$ git push -u origin master
Gitはともだち。
補足事項
補足:git add . と git add -A について
git add .コマンドはgit add -Aとすることもできます。
その場合-Aオプションでは、自分がプロジェクトディレクトリ内のどの場所にいたとしても、そのプロジェクト全体の変更をステージングすることができます。対してgit add .は、先述の通り自分がいるカレントディレクトリ以下の変更のみステージングすることができます
今のところ、自分はプロジェクトのルートディレクトリ以外に移動して何かコマンドを打ったことはないので基本的にはgit add .を使おうと思っています。
補足:git pushの-uオプションについて
git pushコマンドの-uオプションですが、これを付けると次回以降git pushする際にgit push origin masterではなくgit pushのみでpushを実行することができるというものです。
git pushやgit pullする際の、一番おおもととなるリモートリポジトリのブランチを指定するみたいな感覚でしょうか?
難しい言葉で言うと、「コマンドを実行したローカルのブランチの上流ブランチを設定する」ということみたいですね。この部分については、以下のサイトが自分的にはとても分かりやすかったです。
Discussion