コンテンツにスキップ

第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 ""でコミットする. git branch -M mainでブランチをmainに変更する. git remote add origin でリモートリポジトリを追加する. git push -u origin masterでリモートリポジトリにプッシュする.

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>

これで現在の状態にバージョンを付加し,リモートにプッシュすることができる.