githubの作成とgit環境構築の時に実施したことを備忘録として記載.実行環境はWSL Ubuntu-24.04.
githubのアカウントは作成済みの状態としている.
SSHキー生成
- -t: 暗号化オプション,デフォルトのrsaよりed25519の方がオススメ
- -C: デフォルトだとユーザー名とホスト名(例:username@hostname)になるので,変えたい場合は指定
ssh-keygen -t ed25519 -C "haribote"
githubにキーを登録
SSHキー生成で作成されたパブリックキーをコピーする.
cat ~/.ssh/id_ed25519.pub
githubのオプション > settings > SSH and GPG keysに移動し,SSH keysのNew SSH keyをクリック.
Titleに自分の分かりやすい名前を入力.Keyにコピーしたパブリックキーを貼り付け.
github初期設定
# 設定確認(初期は何も出力されない)
git config --list
# ユーザー名設定 (githubのアカウント名を指定する)
git config --global user.name "haribote-prog"
# 設定確認
git config --list
# user.name=haribote-prog
# configファイルがなければ作成
touch ~/.ssh/config
configファイルに以下の内容を記載.IdentityFileは作成したファイルパスを記載.
Host github.com
HostName github.com
User git
IdentityFile /home/haribote/.ssh/id_ed25519
sshコマンドを叩いて接続できることを確認
ssh -vT git@github.com
# 以下のようにgithubアカウント名とsuccessfully authenticatedが表示されればOK
# Hi haribote-prog! You've successfully authenticated, but GitHub does not provide shell access.
gitの拡張機能を入れる
拡張機能を入れることで
- gitコマンド,ブランチ名をTabで補完できる
- プロンプトに拡張情報を表示し,ブランチ名,ブランチステータスを表示できる
# 入力補完
wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -O ~/.git-completion.bash
chmod a+x ~/.git-completion.bash
echo "source ~/.git-completion.bash" >> ~/.bashrc
# 拡張情報表示
wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh -O ~/.git-prompt.sh
chmod a+x ~/.git-prompt.sh
echo "source ~/.git-prompt.sh" >> ~/.bashrc
~/.bashrcに以下の設定を追加する.
# プロンプトに各種情報を表示 1 or 空欄
GIT_PS1_SHOWDIRTYSTATE=1 # addされてないときに*、commitされてないときに+を表示
GIT_PS1_SHOWUPSTREAM=1 # 現在のブランチがupstreamより進んでいたら>、遅れていたら<、遅れてて変更ありなら<>が表示
GIT_PS1_SHOWUNTRACKEDFILES= # addされてない新規ファイルがあったら%を表示
GIT_PS1_SHOWSTASHSTATE=1 # stashがあったら$を表示
############### ターミナルのコマンド受付状態の表示変更
# \u ユーザ名
# \h ホスト名
# \W カレントディレクトリ
# \w カレントディレクトリのパス
# \n 改行
# \d 日付
# \[ 表示させない文字列の開始
# \] 表示させない文字列の終了
# \$ $
export PS1='\[\033[1;32m\]\u\[\033[00m\]:\[\033[1;34m\]\w\[\033[1;31m\]$(__git_ps1)\[\033[00m\] \$ '
##############
.bashrcファイルを再読み込みし,設定を反映する.
source ~/.bashrc
参考記事
コメント