Summary
最初に入れるやつら2021に付け足すgit
のパートが長いので分離。
Personal access tokensは微妙なのでssh
でアクセス。
ローカルのユーザー名はhoge
。
リモートのユーザー名はhuga
。
リモートは、基本的にGitHubを使用。
GitHubで複数アカウントがある場合は、拡張機能のAccount Switcherが便利。
~/.gitignore_global
の設定
OSとエディタに由来する部分は、~/.gitignore_global
に入れとく。
Macなら、
gibo dump macOS VisualStudioCode VisualStudio >> ~/.gitignore_global
Windowsなら、
gibo dump Windows VisualStudioCode VisualStudio >> ~/.gitignore_global
ghq
[ghq]
root = /path/to/src
/path/to/src
は、/Users/USERNAME/src
やC:\\Users\\USERNAME\\src
にしている。バックスラッシュをエスケープして\\
にする必要があることに注意。~
や$HOME
は展開されない。
fzf
on Mac
# git
# Exit with esc while choosing directory
compdef _g g
function g(){
case "$1" in
root )
git config ghq.root;;
* )
target="$(ghq list -p | sort -fV | fzf)"
echo $target
if [ -n "$target" ]; then
cd "$target"
fi;;
esac
}
function _g() { _values '' 'root' }
fzf
on Windows
# git
# Exit with esc while choosing directory
function g () {
switch ($Args[0]) {
'root' {
git config ghq.root
}
default {
$target="$(ghq list -p | sort | fzf)"
# `ghq list -p`が動かないとき
# $target = "$((Get-ChildItem -Path $(ghq root) -Depth 3 -Hidden -Filter .git).parent.FullName | sort | fzf)"
echo $target
if ($target) {
cd "$target"
}
}
}
}
Public key authentication
Key pairをローカルで作成
ssh-keygen
> Enter file in which to save the key (/path/to/.ssh/id_rsa): /path/to/.ssh/github
> Enter passphrase (empty for no passphrase):
/path/to/.ssh
は、/Users/hoge/.ssh
とか。
passphrase
は、くれぐれも忘れないように。
GitHubに登録
Settings > SSH and GPG keysに公開鍵の設定する。
pbcopy < /path/to/.ssh/github.pub
alias
Host github
HostName github.com
User git
Port 22
IdentityFile /path/to/.ssh/github
UseKeychain yes
AddKeysToAgent no
疎通確認
ssh -T github
> Enter passphrase for /path/to/.ssh/github:
> Hi huga! You've successfully authenticated, but GitHub does not provide shell access.
passphrase
がログイン時に必要。
git
とssh
をリンク
[url "github:"]
InsteadOf = https://github.com/
InsteadOf = git@github.com:
リモートを確認する。
git remote -v
複数のアカウントを使い分け
複数のアライアスを準備
Host github-1
HostName github.com
User git
Port 22
IdentityFile /path/to/.ssh/github-1
UseKeychain yes
AddKeysToAgent no
Host github-2
HostName github.com
User git
Port 22
IdentityFile /path/to/.ssh/github-2
UseKeychain yes
AddKeysToAgent no
疎通確認
ssh -T github-1
ssh -T github-2
ユーザーの切り替え
[user]
name =
email =
[includeIf "gitdir:/path/to/src/github.com/huga-1/"]
path = ~/.gitconfig-1
[includeIf "gitdir:/path/to/src/github.com/huga-2/"]
path = ~/.gitconfig-2
ディレクトリごとに~/.gitconfig-#
へ振り分ける。
[user]
name = huga-#
email = xxxxxxxx+huga-#@users.noreply.github.com
[url "github-#:"]
InsteadOf = https://github.com/
InsteadOf = git@github.com:
# = 1, 2
。
~/.gitconfig-#
に、ユーザーやssh
の情報を書き込む。