初学者によるメモ書きです。
間違いや非効率な点、セキュリティ的に問題のある行為が含まれる場合はご指摘ください
WSLとかでつかえる
最初にgitのアップデートをしておくと安心かも
sudo apt-get update
sudo apt-get install git
設定方法
SSHキーの作成
ssh-keygen -t rsa
- いくつか質問が出てくるはず.特になければ全部EnterでOK
GitHubに公開鍵を登録
-
SSH keysにアクセスして
New SSH key
をクリック - タイトルは区別できる好きな名前をつける
- キーは,
cat ~/.ssh/id_rsa.pub | clip.exe
で公開鍵のキーをクリップボードでコピーできるので,そのまま貼り付ける (Windows系の場合)- Mac なら
cat ~/.ssh/id_rsa.pub | pbcopy
- Ubuntu なら
sudo apt-get install xsel
で xsel をインストールしたあとにcat ~/.ssh/id_rsa.pub | xsel --clipboard --input
- Mac なら
-
Add SSH key
をクリックして登録完了
設定確認
-
ssh -T git@github.com
でHi {NAME}!
と表示されればOK
GitHubからのクローン
- リポジトリのトップページで緑色の
<> Code
からSSH
を選択 - 出てくる文字列をコピーし,
git clone {コピーした文字列}
でクローンできる
アカウントの設定
- ユーザ名
git config user.name {GitHubのユーザ名}
- メールアドレス
git config user.email {GitHubのメールアドレス}
- オプション
--local
をつけると,そのgitディレクトリだけで反映される
複数のGitHubアカウントを使い分けたいとき
新しいGitHubアカウント用の公開鍵・秘密鍵をつくる
-
cd ~/.ssh
で .ssh ディレクトリに移動 ssh-keygen -t rsa
- 1番目の質問で,追加するアカウント用のキーの名前を決める
-
id_rsa
と被らないようにid_rsa_sub
など
-
- 残りの質問はEnterでぽいぽい
-
ls
で鍵が生成させれているか確認しておく
config ファイルに追加するアカウントの設定を書き込む
-
touch config
で .sshディレクトリ内にconfigファイルを作成 -
nano config
などで開く - 以下のように設定する
-
github
やgithub-sub
は任意のホスト名 (あとで接続するときに使う名前) -
IdentityFile
は秘密鍵の場所
-
#メインアカウント
Host github #任意のホスト名
HostName github.com
IdentityFile ~/.ssh/id_rsa #メインアカウントの鍵のファイル
User git
Port 22
TCPKeepAlive yes
IdentitiesOnly yes
#サブアカウント
Host github-sub #任意のホスト名
HostName github.com
IdentityFile ~/.ssh/id_sub_rsa #サブアカウントの鍵のファイル
User git
Port 22
TCPKeepAlive yes
IdentitiesOnly yes
ディレクトリごとにアカウントを変える設定
-
~/.gitconfig
と同じディレクトリに.gitconfig_private
と.gitconfig_work
をつくる - それぞれに以下のように記述する
[user]
name = <USER>
email = <MAIL>
-
.gitconfig
に以下を追記する (gitdir
は適宜変更)
# workディレクトリの時に.gitconfig_workが読み込まれる
[includeIf "gitdir:~/GitHub/work/"]
path = ~/.gitconfig_work
# privateディレクトリの時に.gitconfig_privateが読み込まれる
[includeIf "gitdir:~/GitHub/private/"]
path = ~/.gitconfig_private
接続確認
- 先ほど設定したホスト名で
ssh -T [Host]
で接続できる-
Hi {アカウント名}!
のメッセージが表示されればOK
-
注意
- GitHubからのクローンなどでリモートと接続するときは以下のように
git@[Host]
として接続するようにする
git clone git@[Host]:<アカウント名>/<リポジトリ名>.git
- 特定のアカウントで管理したいリポジトリ内は
git config user.name NAME --local
で設定しておく- 正しいアカウントでできているかは commit して試してみるとか