初学者によるメモ書きです。
間違いや非効率な点、セキュリティ的に問題のある行為が含まれる場合はご指摘ください
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 して試してみるとか