リモートリポジトリに変更履歴をアップロードするための手順
リモートリポジトリに変更履歴をアップロードするための手順を以下にまとめました。Cloud9やローカル環境で行う作業を含め、GitとGitHubの基本的な流れを復習しましょう。
ディレクトリとファイルを作成
演習問題や課題に必要なディレクトリとファイルを作成します。
- もし既にディレクトリを作成済みの場合、この手順はスキップして次に進みます。
Cloud9のターミナルでディレクトリへ移動
作成したディレクトリへ移動するために、Cloud9のターミナルを使います。
cd path_to_your_directory
ローカルリポジトリを作成する
Gitを使ってディレクトリをバージョン管理するために、ローカルリポジトリを作成します。
git init
GitHubでリモートリポジトリを作成する
GitHub上で新しいリポジトリを作成します。この際、ローカルのディレクトリ名と同じ名前を付けるとわかりやすいです。
- GitHubにログイン
- 右上の「+」ボタンから「New repository」を選択
- リポジトリ名を入力し、「Create repository」をクリック
変更履歴を保存する☆
作成したディレクトリやファイルの変更履歴をGitに記録します。
git add .
git commit -m "Initial Commit"
git add .
で、ディレクトリ内の全てのファイルをステージに追加し、git commit
でコミットメッセージを付けて変更履歴を保存します。
ローカルリポジトリとリモートリポジトリを紐づける
作成したリモートリポジトリのURLを使って、ローカルリポジトリとリモートリポジトリを紐づけます。
git remote add origin リモートリポジトリURL
成功したら、何も表示されない!
例:
git remote add origin https://github.com/yourusername/yourrepository.git
ブランチ名を「main」に変更する
ローカルリポジトリのデフォルトブランチ名が「master」である場合、これを「main」に変更します。
git branch -M main
リモートリポジトリへPushする☆
ローカルリポジトリの変更をリモートリポジトリに反映(プッシュ)します。
git push origin main
以上の手順で、リモートリポジトリにローカルの変更履歴がアップロードされます。この流れを覚えておくと、今後の開発で役に立ちます。
開始 … Start 終了 … Finish 追加 … Add 更新 … Update 削除 … Remove 不具合修正
git add .で何が起きる?
git add .
を実行すると、現在のディレクトリ(.
は「現在のディレクトリ」を指します)以下の全ての変更がGitのステージングエリアに追加されます。具体的には以下の内容が対象です:
- 新しく追加されたファイル: Gitでまだ追跡されていない新しいファイルもステージングエリアに追加されます。
- 変更があった既存のファイル: 既にGitで追跡されているファイルで変更があったものもステージングされます。
- 削除されたファイル: Gitで追跡されていたファイルが削除された場合も、その削除がステージングされます。
ステージングエリアに追加することで、次回の git commit
でこれらの変更がコミットに含まれるようになります。
ステージングとか、ステージングエリアってなに?
ステージングエリア(staging area)は、Gitの内部的な領域の一つで、次にコミットする変更を一時的に置く場所です。これにより、すぐにコミットしたくない変更や、部分的にコミットしたい変更を選んで準備することができます。
Gitのプロセス
Gitの基本的なプロセスは3つのステップに分かれています:
-
作業ディレクトリ(Working Directory):
- ここで実際にファイルを作成・編集します。これは、ローカルのプロジェクトフォルダそのものです。
- ファイルを変更しても、すぐにGitには反映されません。まだ「作業中」の状態です。
-
ステージングエリア(Staging Area):
-
git add
コマンドを使って、コミットしたい変更をステージングエリアに追加します。このエリアには「次にコミットする準備ができた変更」が置かれます。 - 全ての変更をコミットせずに、一部のファイルだけをコミットしたい場合などに便利です。
-
-
リポジトリ(Repository):
-
git commit
コマンドを実行すると、ステージングエリアにある変更がコミットされ、リポジトリに保存されます。これで変更履歴が記録され、後から変更を確認したり、戻したりすることができるようになります。
-
なぜステージングエリアが必要?
- 選択的にコミットできる: ステージングエリアを使うことで、ファイルの一部だけを選んでコミットすることが可能です。すべての変更をコミットせず、必要なものだけをまとめてコミットできます。
- コミットの準備: まだコミットする準備ができていない変更はステージングせず、後で追加できます。これにより、細かい作業を整理して管理できます。
つまり、ステージングエリアはコミットの準備をするための「待機場所」であり、git add
を使って、ここに変更を送り込み、git commit
で実際にリポジトリに保存します。
git addが一時保存ボタンみたいで、
git commitが保存確定ボタンみたいで、
git pushが投稿や共有ボタンみたい!