GitHubとは?
まずGitとGitHubは同一のものではありません。
Gitがソースコードのバージョンを管理するシステムに対しまして
GitHubはリモートサーバーをブラウザで閲覧するために存在するツールです
よって、GitHubを使わずともGitのみを使うことも可能です
新しいリモートリポジトリを作成します
GitHubのリポジトリーをクローン(コピー)します
Gitのクローン(コピー)とはリポジトリの内容をコピーを取るという意味です
今回はGitHubのリポジトリをコピーしますが、対象が別のローカルリポジトリでも可能です
-
クローンの対象となるGithubのリポジトリから
SSHのURL
をコピーします
- コマンドで
git clone にURLを貼り付けて
実行します
GitHub(リモート)に存在しているリポジトリが、ローカルリポジトリにコピーされます
$ git clone URL
- コマンドで
Gitのローカルリポジトリへ登録する
- カレントディレクトリをワークツリー(対象のディレクトリ)に変更し
git add
することで、ステージ(ローカルのgit)に登録されます - GitHubに登録するファイルやディレクトリを選択することができます
git add .
//もしくは
git add ファイル名
// ”.” = カレントディレクトリ内の全てのファイル、ディレクトリを対象にとります
- 実行した場合、緑色になっているファイル名およびディレクトリ名が
ローカルのGitで管理されている状態(ステージング)になります
-
git commit -m
を実行することでステージングからリポジトリへ保存することができます
git commit -m "〇〇を変更しました など"
//共有しやすいように変更に対するコメントは記述する必要があります
- ローカルリポジトリの情報とワークツリーの内容が異なる状態か判断したい場合は
git status
を実行することで確認できます
git status
- 情報が異なる場合は対象ファイルに対して
modified
が表示されます
- この状態で
git add
を実行すれば
ローカルリポジトリと相違のある情報のみステージングされます
(コミットを待機する状態)
git add .
git status
- この状態でgit commit -m を実行した場合
git commit -m "〇〇も変更しました 2回目です"
$ git log
- 誰がいつ、どのファイルを編集したかなどの情報が表示されます
GitHubのプッシュ先を設定する
- 次のコマンドを実行することでプッシュ先のリモートリポジトリを指定できます
git remote add origin <URL>
GitHub(リモート)にアップロードする
-
git push
を実行することでリモートにアップロードができます
$ git push origin
// ”origin”はリモートサーバーを指します
もしも次のようなエラーが発生した場合
fatal: The current branch main has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin main
//訳
//現在のブランチのメインには上流のブランチがありません。
//現在のブランチをプッシュし、リモートをアップストリームとして設定するには、次を使用します
//git push --set-upstream origin main
-
git push origin
だけではGitHubへpushすることができないことを指しています。 - 現在の作業ブランチにリモートリポジトリのブランチ(上流ブランチ)が無いためです
上流ブランチの紐付けは次のコマンドで確認できます
$ git branch -vv
- 上流ブランチが
main
であることが確認できます
- GitHubにpushしたい場合はよって今回の場合は上流リポジトリ名を追記する必要があります
- コマンドを実行する場合、SSHのパスフレーズが求められる場合があります
$ git push origin main
- 上流ブランチを省略できるよう恒久的に設定する方法がエラーにも表示された以下のコマンドです
- コマンドを実行することで
git push
のみで上流ブランチに対してpushができるようになります
git push --set-upstream origin main
// または
git push -u origin main
-
push
に成功するとブラウザのGitHubにpushした内容が表示されています