👏

ユーザ名が日本語アカウントのWindowsでgit cloneする。

に公開

はじめに

Windowsに限らずディレクトリ名に日本語を入れると地獄に落ちることが多いのですが、支給された貸与PCの場合ユーザ名が日本語という事は現実問題としてあります。
その場合、様々なコマンドが通らず非常に困るわけですが、今回git cloneについて対応したことを遺します。

※そもそも半角英数字で記号なしのアカウント名なら必要ない。無駄な苦労ですので出来ればPC初期設定の時点で回避するように意識しましょう。
また、アカウント名変更のリスクが抑えられるならさっさと変えた方がよいです。
postgresサーバなど、この方法では対応できないソフトも一部あります。

やり方

半角英数字で日本語フォルダへのソフトリンクをつくる。

エクスプローラで以下のフォルダを開きます。
C:\Users

日本語ユーザ名のフォルダを右クリックしてショートカットを作成します。
「ここに作れないのでデスクトップに作りますか?」といったことを聞かれるので、はいを選んで一旦デスクトップに作ります。
その後上記のフォルダにドロップすれば管理者権限で移動しますか?みたいに聞かれるのではいを選べばリンクができます。

ssh configと公開鍵・秘密鍵を配置。

以下のようにさっき作った英数字のショートカット直下の.sshに3点セットを配置します。
・config
.公開鍵
・秘密鍵

C:\Users\KTabuchi.ssh

そしてconfigファイルを以下のように記述します。
前項でショートカットを用意しなかった場合は、IdentiyFileに日本語が混じって、どうやっても動かなくなります。
なお、ChatGPTに日本語パスで動かす方法を聞くとさも出来そうなことをいって色々提案してきましたが全部嘘でした。
まず出来ないと思います。
※実際に出来た!!って方があればコメント欄にどうぞ。

# github.com
Host github_tabuchi
    HostName github.com
    IdentityFile /c/Users/KTabuchi/.ssh/github.pkey
    User git
    IdentitiesOnly yes

接続テスト

configファイルの場所を明示して ssh -T を実行します。
macやLinuxだと -F がなくても自分のconfigを見るのですが、
windowsのgit bash だとなぜかルートの方を見に行きます。

ssh -F ~/.ssh/config -T github_tabuchi

接続確認できたら、今度はcloneするのですが、これもssh -Fを有効にした状態でしか通りません。
このように書くことでconfigファイルを読み込ませてクローンできました。

$ GIT_SSH_COMMAND='ssh -F /c/Users/KTabuchi/.ssh/config' \
  git clone git@github_tabuchi:KentaTabuchi/mahjong_quiz_register.git

おわりに

今回はChatGPTが嘘しか言わず、ググっても1つも参考記事がなかったため本当に苦労しました。
同じ問題に苦しんでいる人の一助になれば幸いです。

株式会社ONE WEDGE

【Serverlessで世の中をもっと楽しく】 ONE WEDGEはServerlessシステム開発を中核技術としてWeb系システム開発、AWS/GCPを利用した業務システム・サービス開発、PWAを用いたモバイル開発、Alexaスキル開発など、元気と技術力を武器にお客様に真摯に向き合う価値創造企業です。
https://onewedge.co.jp

Discussion