はじめに
本記事は、「Git」の環境構築及び「GitHUB」へのPushまでの手順を自分用にまとめたものです。
また、当記事は前回の投稿記事「Ruby on Rails6.0の環境構築から新規プロジェクト作成まで(メモ)」で作成した環境を前提に作成していますのでご注意ください。
前提条件
- クライアントはWindows(あまり意味はない)
- 開発環境はCloud9
- Linuxコマンドの使い方がわかる程度の力量
- GitHUBのアカウントは作成済み
参考記事
Git と GitHub の違い
gitとgithubの連携
Git/GitHubレベル別オススメ学習サイトまとめ完全保存版【2019.06】
GitHub 初心者の最初のプッシュ
良い README.md を書くためのテンプレート(翻訳)
わかりやすいREADME.mdを書く【外部サイト】
Gitチートシート【外部サイト】
github private public 変更
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~
GitHUB側の準備
新規リポジトリ作成
まずは新規のリポジトリを作成するために「New」ボタンをクリックします。
次にリポジトリ作成のために必要な情報を入力して「Create Repository」ボタンをクリックします。
設定すべき内容は下記の通りになります(今回はPrivate設定で作成しますが後でPublicに変える事も可能です)。
Repository name | Public/Private |
---|---|
プロジェクト名 | Private |
作成できると下記のような画面が表示されます。
記載されているコマンド類は後で必要となります。
今回はSSHによるPushを行う予定ですので、赤枠部分にある「SSH」をクリックして、
各種表示されている情報をテキストファイル等にとりあえず退避しておいてください。
次にGitHUBにSSHキーを登録していきます。
まずは開発環境(Cloud9)に戻ってSSHの秘密鍵と公開鍵を発行します。
保存先 | 秘密鍵 | 公開鍵 |
---|---|---|
/home/ユーザー名/.ssh | id_rsa | id_rsa.pub |
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ユーザー名/.ssh/id_rsa): 【Enterキー】
Enter passphrase (empty for no passphrase): 【お好きなパスフレーズ】
Enter same passphrase again: 【上記と同じ値】
Your identification has been saved in /home/ユーザー名/.ssh/id_rsa.
Your public key has been saved in /home/ユーザー名/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:27YH4RBz7wBOeqDcTXyHVcX9I9wGvE9VxwFhGM8aNrs ユーザー名@ip-XXX-XXX-XXX-XXX
The key's randomart image is:
+---[RSA 2048]----+
| . +==+=B|
| . B +.=o *|
| . o B * *.o+ o|
| o o = + *+ =.|
| .So * = .|
| oo o . |
| . oE |
| . .. |
| .. |
+----[SHA256]-----+
作成した公開鍵を表示してクリップボードにコピーします。
$ cat /home/yu_inuka/.ssh/id_rsa.pub
ssh-rsa 【以下省略】/RE/M2Bp0ItSOkESvqFOXBf6ov1tYd8Ei7Hr ユーザー名@ip-XXX-XXX-XXX-XXX
GitHUBの画面に戻って右上の「アイコン」>「Settings」をクリックします。
左側にある「Personal settings」>「SSH and GPG keys」をクリックします。
右上にある「New SSH key」をクリックします。
「Title」に分かりやすい名前を付けて「Key」に公開鍵情報を入力して「Add SSH Key」をクリックします。
下記のようにKey情報が追加されていれば完了です。
Git環境設定(Cloud9)
まずは開発環境(cloud9)に戻ってGit自体がインストールされているか確認します。
$ git --version
git version 2.14.5
もし、インストールされていない場合は、下記コマンドでインストールします。
$ sudo yum -y install git
次にGitの環境設定を実施します。
user.name | user.email |
---|---|
コミット操作の名前 | コミット操作のメールアドレス |
$ git config --global user.name "ユーザー名"
$ git config --global user.email "メールアドレス"
次に対象プロジェクトをローカルリポジトリにします。
$ git init
Reinitialized existing Git repository in /home/ユーザー名/cloud9/プロジェクト名/.git/
プロジェクトの各種ファイルをローカルリポジトリへ登録します。
$ git add --all
$ git commit -m "first commit"
【以下省略】
create mode 100644 vendor/bundle/ruby/2.6.0/specifications/websocket-driver-0.7.1.gemspec
create mode 100644 vendor/bundle/ruby/2.6.0/specifications/websocket-extensions-0.1.4.gemspec
create mode 100644 vendor/bundle/ruby/2.6.0/specifications/xpath-3.2.0.gemspec
create mode 100644 vendor/bundle/ruby/2.6.0/specifications/zeitwerk-2.2.1.gemspec
create mode 100644 yarn.lock
リモートリポジトリへの接続確認を実施します(最後のメッセージが表示されればOKです)。
$ ssh -T git@github.com
The authenticity of host 'github.com (52.192.72.89)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
RSA key fingerprint is MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? 【yesを入力】
Warning: Permanently added 'github.com,52.192.72.89' (RSA) to the list of known hosts.
Enter passphrase for key '/home/ユーザー名/.ssh/id_rsa': 【パスフレーズを入力】
Hi 【XXXXXXXX】! You've successfully authenticated, but GitHub does not provide shell access.
リモートリポジトリへの登録を実施します。
コマンドの「git@github.com
【以下省略】.git」部分はテキストファイルに退避させた情報になります。
$ git remote add origin git remote add origin git@github.com:【GitHUBに登録した名前】/【リポジトリ名】.git
エラー等が出なければ、実際にPushを実行します。
$ git push -u origin master
Enter passphrase for key '/home/ユーザー名/.ssh/id_rsa':
Counting objects: 7586, done.
Compressing objects: 100% (7125/7125), done.
Writing objects: 100% (7586/7586), 32.11 MiB | 3.35 MiB/s, done.
Total 7586 (delta 1191), reused 0 (delta 0)
remote: Resolving deltas: 100% (1191/1191), done.
To github.com:【GitHUBに登録した名前】/【リポジトリ名】.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
最後にGitHUB上で対象のリポジトリが下記のような状態になっていれば今回の対応は完了です。