ネットで調べながらGitでコミットできるまで挑戦したら2~3時間程、苦戦したので同じステップを踏まないためにメモします。Windows10編
流れ
事前準備
- インストールについては割愛。一応リンク
2.インストールできたら、Git Bash起動。
最初にやること
まずはインストールできてるか確認
$ git --version
git version 2.25.1.windows.1
ユーザ名とメアドの設定
$ git config --global user.name "ユーザ名"
$ git config --global user.email メアド
設定できたか以下のコマンドで確認
$ git config --list
...
...
user.name= ユーザ名
user.email= メアド
SSHキー取得
リモートリポジトリとやり取りするためにSSHのカギが必要らしい。
SSHキー作成
※GitHubに登録しているEmailアドレスを使うのが一般的らしい
$ ssh-keygen -t rsa -b 4096 -C "メアド"
SSH Keysの保存先を聞かれているので、特に気にしなければそのままEnterを入力。
Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
ここで生成されるファイル名は上記のコマンドなら
id_rsa
とid_rsa.pub
のはず。それ以外ならおかしい。自分は暗号のようなファイル名になったので何回かやり直した。
パスフレーズ入力
Enter passphrase (empty for no passphrase): [Type a passphrase] # Enter same passphrase again: [Type passphrase again]
*ちなみに、色々な記事で、生成されたファイルにパーミッション設定するよう言われる(chmod 600
のコマンド)がWindowsの場合いらない↓
Windowsで
chmod
は実行できないと書きましたが、元々Windowsでは他のユーザアカウントのデータは(管理者権限が無い限り)見えないようアクセス制御されていますので、「秘密鍵のパーミッション変更」は実行しないままで大丈夫です。
SSHのconfigファイル設定
GitHubへSSH接続する際に、どの秘密鍵を指定するのかを管理するのが目的。以下の内容を.ssh/config
(拡張子なし)に記述。なければ作る。
Host github
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
GitHubのアカウントに公開鍵を登録
アカウント持ってなければ作る。ここも割愛。一応リンク↓
How people build software · GitHub
リポジトリ作成
*リポジトリ持ってたら大丈夫
アカウント作ったらリポジトリ作成。
自分のアカウントのページ行ってリポジトリのタブでNew押す。
- リポジトリ名書いて
- Public or Private 選択
- Initialize this repository with a README に任意でチェック入れたら
- Create repository クリック
公開鍵を登録する
-
id_rsa.pub
の中身をコピー -
右上のメニューから Settings を選択
-
gitのプロフィール画面の左側メニューSSH and GPG keysの
-
New SSH keyをクリックして登録
ー「Title」はPC名とか自分がわかりやすいやつで
ー「Key」には、先ほどコピーした公開鍵の値をそのまま貼り付けます。
で、「Add SSH key」をクリック
これでSSH接続の設定おわり
SSH接続できるか確認
SSHのconfig
ファイルを設定したので、以下のように「github
」と指定するだけで、記載したホスト名、ユーザー名、秘密鍵が自動的に使われます。
$ ssh github
以下のようなやつでたら、GitHub's SSH key fingerprintsにあるfingerprintsと一致するのを確認したらyes
The authenticity of host 'github.com (52.69.186.44)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
``
Hi username! You've successfully authenticated, but GitHub does not # provide shell access.
これがでればOK
番外編
ssh-add
でマシンに鍵登録
git push
とかするたびに毎回パスワード聞かれるなら以下のコマンド
$ eval `ssh-agent`
$ ssh-add keyのパス(デフォルトは~/.ssh/id_rsaだと思う)
さあ!いよいよGitを使おう
作業ディレクトリ作成
$ mkdir git
$ cd git
おっと、ここで初心者の私が即席で調べて理解したgitの作業イメージを共有して進めたほうが親切そうだな
作業イメージ
ローカルリポジトリ(自分のパソコン内のリポ)とリモートリポジトリ(ネット上のリポ)ってのがあって
ステージング : どれを保存するか選ぶ
コミット:ローカルに保存
プッシュ:サーバに保存
マージ:Masterに更新
ちなみに
プル : サーバからデータをローカルにロードする
(何か違えば教えてください)
リポジトリをローカルにCloneする
リポジトリをさっき作った作業ディレクトリ(ローカル)にクローンする。
GitHubのリポジトリのページから Clone or download をクリックして、今回は Use SSH を選択。
「git@github.com:【ユーザー名】/【リポジトリ名】.git
」という文字列をコピー
コピーしたやつを書きコマンド git clone
のあとに張り付けてCloneする
$ git clone git@github.com:【ユーザー名】/【リポジトリ名】.git
Cloning into '【リポジトリ名】'... remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (3/3), done.
これで自分のディレクトリにファイルが入ってる
お次はリポジトリに移動してそのまま編集してコミットまでしたい気持ちはあるが、通常はMasterブランチにコミットすることはなく、ローカルで作業用のブランチを作って、そこで弄ったものをローカルで保存(コミット)してサーバにあげる(プッシュする)らしいのでそれをやる。
ブランチ作る
$ cd 【リポジトリ】 #リポジトリのディレクトリへ移動
$ git checkout -b ブランチ名 #開発用のブランチを作成
Switched to a new branch 'ブランチ名'
*リポジトリのディレクトリの中には管理したいファイルを置いとく。以下で確認。
$ ls -l
ファイルをステージング
コミットしたいやつをステージング
$ git add 対象ファイル
*ちなみに取り消したいときは
$ git reset HEAD 対象ファイル
ローカルにコミット
ステージングされたやつをローカルに保存
コミットメッセージはおまかせ
$ git commit -m "コミットメッセージ"
[develop 77a190e] test commit
1 file changed, 46 insertions(+), 5 deletions(-)
GitHubにプッシュ
下記コマンドでGitHubにプッシュします。
$ git push -u origin ブランチ名
#パスワードうったりして、なんか表示される
* [new branch] ブランチ名 -> ブランチ名
Branch 'ブランチ名' set up to track remote branch 'ブランチ名' from 'origin'.
これがでたらおわり。
あとはGitHubを見に行ったら更新されてるのを確認。
お疲れ様です。