はじめてのGitHubへのコミット
コードを書いていると、いろいろなバージョンが出てきます。 これらを管理するためにバージョン管理システムを使います。 バージョン管理システムは、ファイルの変更履歴を管理してくれるものです。
バージョン管理システムにはいろいろなものがありますが、プログラムの世界ではGitというものがよく使われています。 GitHubは、Gitを使ってクラウド上でバージョン管理を行ったり、ソースコードを公開したり、共同開発を行ったりすることができるサービスです。
GitおよびGitHubの初期設定が終わっていない場合は、このページに従ってください。
GitHubにリポジトリを作成する
まず、GitHubにリポジトリを作成します。
リポジトリとは、ファイルやディレクトリの状態を記録する場所です。 プロジェクトごとに作成するのが一般的です。
New repository (opens in a new tab)にアクセスして、リポジトリを作成します。
- Repository name: 何でもOKです
- Public/Private: 今回はPrivateにします
他の設定はデフォルトのままで大丈夫です。 「Create repository」をクリックしてリポジトリを作成します。
ローカルにリポジトリを作成する
次に、ローカルにリポジトリを作成します。
リポジトリを作成したいディレクトリ(今回はプロジェクトのディレクトリ)に移動して、以下のコマンドを実行します。
git initこれで、ローカルにリポジトリが作成されました。
ls -aコマンドを実行すると、.gitというディレクトリが作成されていることが確認できます。
ローカルのリポジトリをリモートのリポジトリに紐付ける
次に、ローカルのリポジトリをリモートのリポジトリに紐付けます。
GitHubのページで、リモートリポジトリのURLをコピーします。
SSHで接続する場合とHTTPSで接続する場合がありますが、GitHubの初期設定のときに設定した接続方法で接続してください。
git remote add origin <remote_repository_URL>originは、リモートのリポジトリの名前です。
originは、リモートのリポジトリの名前としてよく使われます。
ファイルをコミットする
変更を加えたファイルをGitの管理下に置くには、git addコマンドを使います。
git add <file_name>git addコマンドを実行すると、ファイルの変更が「ステージングエリア」に追加されます。
ステージングエリアに追加されたファイルは、次の「コミット」の対象となります。
変更を加えた全てのファイルをステージングエリアに追加するには、以下のコマンドを実行します。
git add .変更を加えたファイルを確認するには、git statusコマンドを使います。
ステージングエリアに追加されたファイルをコミットするには、git commitコマンドを使います。
コミットとは、ファイルの変更をリポジトリに記録することです。
コミットするときには、コミットメッセージを必ず入力する必要があります。 どのような変更を加えたかを簡潔に記述します。
コミットメッセージの形式にはいくつかの流派がありますが、今回は以下の形式でコミットメッセージを入力します。
<type_of_change>: <description>type_of_change: どのような変更を加えたかを表すfeat: 新機能の追加fix: バグ修正docs: ドキュメントのみの変更style: コードの意味に影響を与えない変更refactor: バグ修正や機能追加を行わないコードの変更perf: パフォーマンスを向上させるコードの変更test: テストの追加・修正chore: ビルドプロセスやドキュメント生成などの補助ツールやライブラリの変更
description: 変更の内容を簡潔に記述する
git commit -m "<commit_message>"リモートのリポジトリにコミットをプッシュする
ローカルのリポジトリにコミットした変更をリモートのリポジトリにプッシュします。
プッシュとは、ローカルのリポジトリにコミットした変更をリモートのリポジトリに反映させることです。
git push --set-upstream origin main--set-upstreamオプションを付けることで、次回以降はgit pushコマンドだけでプッシュできるようになります。
git pushGitHubのページを開いてみましょう。 リモートのリポジトリにコミットした変更が反映されていることが確認できます。
コミットは、こまめに行うのがおすすめです。 どのような変更を加えたのか後から見返してわかりやすくなる上、バグが発生したときにどのコミットでバグが発生したのかを特定しやすくなるからです。