第4章 Git
GitHub
ssh鍵の登録
鍵の作成
GitHubにssh鍵を登録しておくと,スムーズにリモートへ接続できる. パスワード認証によるアクセスは廃止されている.
鍵を作成して,公開鍵をGitHubに登録する. まず鍵を作成する.
cd ~/.ssh
ssh-keygen -t ed25519
実行すると鍵の名前を最初に聞かれるので,そこで「github」などわかりやすい名前にしておくと楽. さらにここで名前を自分で決めた際は,~/.ssh/configに次の記述を加えることでエイリアスを登録する:
Host github
HostName github.com
User git
IdentityFile ~/.ssh/github
GitHubへの公開鍵の登録
GitHunのSettingsから「SSH and GPG keys」のページを開いて「New SSH key」を選択し, Titleにわかりやすい名前を自由につけて, Keyの欄に公開鍵(.pubがついているもの)の中身をコピーして登録する.
接続確認
以下は上述のエイリアスを登録した場合.
ssh -T github
リモートリポジトリURLの登録
URLは次のようになる.
git@github:<user name>/<repository name>.git
すでに別のURLが登録されている場合は, gitを使うディレクトリ内で次のようして変更する.
git remote set-url origin <URL>
リポジトリの作成からプッシュまでの流れ
GitHub上でリポジトリを作成し, ローカルファイルを初めてリモートにプッシュするまでの手順を示す.
git init
git add .
git commit -m "<message>"
git branch -M main
git remote add origin <URL>
git push -u origin master
git initでリポジトリを作成する.
git add .はすべてのファイルをステージングする.
git commit -m "
GitHubを使わずローカルでのみ管理する場合は, commitまでで十分である.
リモートの強制上書き
git push origin mainを試みるとき, リモートとローカルの食い違いが原因で次のようなエラーが出る場合がある:
To <remoteのurl>
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'https://github.com/is-enaga/mynote.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
このとき以下のように-fオプションで強制的にプッシュできる.
git push -f origin main
リモートURLの確認・変更
次のコマンドでリモートリポジトリのURLを確認できる.
git remote -v
リモートリポジトリのURLを変更するには以下のコマンドを実行する.
git remote set-url origin <URL>
Gitによるバージョン管理
ブランチ
新規ブランチの発行
新しい機能を追加するときなどに,ブランチを発行したい場合は次のようにする.
git branch <branch name>
ブランチの切り替え
別のブランチに切りかえるには次のようにする.
git checkout <branch name>
ブランチの削除
git branch -d <branch name>
バージョンの付加
ファイルにバージョン番号を付けて管理する場合,以下のようにすればよい.
git tag -a <tag name> -m "<message>"
git push origin <tag name>
これで現在の状態にバージョンを付加し,リモートにプッシュすることができる.