N予備校「プログラミング入門Webアプリ」を受講しています。
今回は第2章14,15節です。
git と GitHub
:::note git : バージョン管理を行うソフトウェア github : gitを利用したWebサービス :::gitのインストール
``` sudo apt update sudo apt install git ``` apt(パッケージマネージャ)をアップデートしてgitをインストールSSHでGitHubと通信
:::note パスワード認証 : ユーザー名とパスワードでの認証 公開鍵認証 : ユーザー名と公開鍵で認証 :::今回は公開鍵認証。
秘密鍵と公開鍵の生成
ssh-keygen
.ssh
ディレクトリに秘密鍵id_rsa
、公開鍵id_rsa_pub
が作られるので、公開鍵をcat
してgithubに登録する。
公開鍵と秘密鍵
:::note 秘密鍵(自分だけが持っている) 公開鍵(配布用の鍵、南京錠の錠前。秘密鍵でだけ開けられる錠前) :::相手と通信する際に、相手は公開鍵を使って情報を暗号化(鍵を閉める)、
受け取る自分は秘密鍵を使って情報を復号(鍵を開ける)。
⇒秘密鍵がわからなくても公開鍵の鍵を閉めることはできる。
イメージはなんとなくわかった気がしてるだけかもしれない。
clone
clone : GitHubのリポジトリからローカルにデータをもってくる
内部的にはGitHub上のfork
と同じ動きをしているらしい。
GitHubからSSH接続用のURLをコピーしてくる
git clone git@github.com:GitHubアカウント名/ファイル名.git
pull
GitHubから最新データの取得git pull origin gh-pages
origin : cloneを行った際にその元となったリモートリポジトリはデフォルトでoriginという名前になる
gh-pages
はブランチ。
pull
で最新のバージョン取得。
push
リモートからローカルと違い、ローカルからリモートの場合コミットに段階がある。コミットした際のユーザー情報を登録
git config --global user.name "your name"
git config --global user.email xxxx@xx.xx
git config --global core.editor "vim"
--global : どのリポジトリでもこの情報を使う
--local : 特定のリポジトリだけでこの情報を使う
設定の確認
`git config -l` 登録したユーザー情報を確認できる。ローカルにリポジトリ作成
git init
カレントディレクトリに.git
ディレクトリが作られる。
git add filename
ワークツリーからインデックスに追加する(ステージング)
git add .
でカレントディレクトリのすべてのファイルが対象となる。
ワークツリー : ローカルで作業しているディレクトリ
インデックス : リポジトリにコミットする前の段階
変更状況の確認
git status
コミット
git commit -m "コミット内容の説明"
-m
オプションがない場合、vimの画面が開く。
github へのコミットは、githubにも新しくリポジトリを作る必要がある。
GitHub上でリポジトリを作成⇒SSHでのpush
コマンドをコピーしてくる。
git remote add origin git@github.com:ユーザー名/ファイル名.git
git branch -M main
git push -u origin main
git remote add origin XXXXXXX
リモートリポジトリのoriginはこのGitHubのアドレスのリポジトリを指す。
git branch -M main
デフォルトのブランチをmainにする。
git push -u origin main
ローカルの変更をリモートに適用する。
-u
は次回以降は省略した場合自動でこの設定でpushするというオプション