WindowsでGitHubの複数アカウントをhttpsで使い分ける

2020年5月

はじめに

GitHubの複数アカウントを使い分けるには片方のアカウントでSSH接続する方法があります。ですがGitHubでGit LFSのファイルはhttpsのみでSSHにできないのでダウンロードできません。そこでCredential Managerのnamespaceで複数アカウントをhttpsで使い分けます。

必須環境

Git for WindowsのインストールウィザードでEnable Git Credential ManagerをチェックしてCredential Manager for Gitを一緒にインストールします。

image.png

メインアカウントの設定

特に設定は不要です。git cloneなどを行って認証するとコントロールパネルの資格情報マネージャーのWindows資格情報にgit:https://github.comが追加されます。

image.png

サブアカウントでの設定

Credential Managerでnamespaceを設定すると資格情報の先頭のgit:が変わり複数のアカウントを使い分けることができます。

  1. cloneする時はnamespaceが設定されていないので-c credential.namespaceで指定します。指定する名前はgit以外の英数字なら何でも構いません。

    git -c credential.namespace=sub clone https://github.com/[name]/[repository].git
    
  2. ダイアログが出てくるのでサブアカウントのアカウントとパスワードを入力します。

  3. cloneできたらローカルコンフィグにcredential.namespaceを設定します。

    cd [repository]
    git config credential.namespace sub
    
  4. pushして失敗しない事を確認します。

    git push
    

cloneして認証が通った後に資格情報マネージャーを開くとsub:https://github.comが追加されています。

image.png

詳しくはCredential Manager for Windowsのcredential.namespaceを参照してください。

注意点

git configのConditional Includesを使うとgitdir:で指定したフォルダにcredential.namespaceを設定できそうですがCredential ManagerがConditional Includesに対応していないので利用できません。issuesに要望を上げたので興味ある方はリアクションやコメントをお願いします。

参考リンク

実行中のadb server/Unity組込み/Android Studio/環境変数からadbを探して実行するPowerShell関数

2020年5月

はじめに

PCに複数のadbやAndroid SDKがインストールされている時に起動中のadb serverと違うバージョンのadbを実行するとadb serverが再起動してしまいます。そのため、なるべく同じバージョンのadbを実行するPowerShellの関数を作りました。

スクリプト

PowerShellの$profileに以下のスクリプトを追加してadbを実行すると以下の順番でadbコマンドを探します。

  1. 実行中のadb server
  2. 実行中のUnityから一緒にインストールしたAndroid SDKのadb
  3. Android StudioからインストールしたAndroid SDKのadb
  4. 環境変数PATHのadb
function FindAdb() {
    # find from process list
    $adbPath = Get-Process -Name "adb" -ErrorAction Ignore |
        Sort-Object Id |
        Select-Object -First 1 -ExpandProperty Path
    if ($null -ne $adbPath) {
        return $adbPath
    }
    # find from Unity in process list
    $adbPath = Get-Process -Name "Unity" -ErrorAction Ignore |
        Select-Object @{
            label="adb"
            expression={
                Join-Path (Split-Path $_.Path) "Data" "PlaybackEngines" "AndroidPlayer" "SDK" "platform-tools" "adb.exe"
            }
        } |
        Where-Object { Test-Path -Path $_.adb -PathType Leaf } |
        Select-Object -First 1 -ExpandProperty adb
    if ($null -ne $adbPath) {
        return $adbPath
    }
    # find from LOCALAPPDATA
    $adbPath = Join-Path $env:LOCALAPPDATA "Android" "Sdk" "platform-tools" "adb.exe"
    if (Test-Path -Path $adbPath -PathType Leaf) {
        return $adbPath
    }
    # find from path
    $adbPath = Get-Command -Name "adb" -CommandType Application,ExternalScript -ErrorAction Ignore |
        Select-Object -First 1 -ExpandProperty Source
    if ($null -ne $adbPath) {
        return $adbPath
    }
    # not found
    return "adb.exe"
}
function ExecAdb() {
    $adb = FindAdb
    & "$adb" $args
}
Set-Alias -Name adb -Value ExecAdb

[Tips] ErgoDox EZ を Windows で利用する際に一部の記号が正しく入力出来ない問題の解決方法

2020年5月

本記事に記載されている対処を行うことで、
手っ取り早く Windows でも ErgoDox EZ が正常に利用可能になりますが、
逆にノート PC 側でキーを入力する際に一部の記号が正しく入力出来なくなります。

また、
デスクトップ PC を使っている or ノート PC がデフォで英字キーボード搭載している場合は、
本記事の対処を行わずとも Windows で正常に ErgoDox EZ が使用できると思われます。

はじめに

普段 Mac で開発しているのですが、故あって、
しばらく Windows 機メインで開発を進めることになりました :hammer:

キーボードは ErgoDox EZ を使っているので、
Windows に繋げて早速セットアップしようとしたところ、、
とか とか 等の一部記号が入力出来ない事態に遭遇しました。。

少し調べると、
キー割り当てを JIS キーボード向けにして設定する方法を見つけたのですが、
若干手間だったのでもっと簡単に対処できる方法は無いか調査しました:writing_hand:

調査の結果、簡単な対処法を発見したので、
記事として残しておくことにしました:thumbsup:

対処法

キーボードのレイアウトを英字キーボードに変更することで対処可能でした :thumbsup:

まず、検索ボックスを開き 言語の設定と入力して設定画面に遷移します :arrow_down:
5ff64a3d83776556d3b89f50e37f9d32.png

表示される言語設定ウインドウの左に表示される 言語 をクリックして、
優先する言語の日本語の欄をクリックして オプション ボタンをクリックします :mouse_three_button:
fdbc2bb5144b0b65388208cb5399ed88.png

レイアウトを変更する ボタンをクリックして、
日本語/英字キーボード切り替えダイアログを表示します :keyboard:
19fafb9e2a78f435364662af36b353a0.png

表示されたダイアログのセレクトボックスから 英語キーボード(101/102キー) を選択し、
今すぐ再起動する ボタンをクリックして設定内容を反映させます :white_check_mark:

a05f39b928b87725e1c20497db16ec28.png

再起動後、入力出来なかった が入力可能になっていれば OK です :tada:

[補足] 日本語と英語入力切替のショトカを設定する

Windows だと LANG1LANG2 といったキーを検知してくれず、
日本語と英語入力切替が上手くいかない問題も発生しました。。

こちらの問題は、日本語と英語入力切替のショトカを設定することで解決しました :muscle: :arrow_down:
Windows10を英語配列キーボードで使っている人向け日本語入力切り替えの変更方法

おわりに

今回はとにかく早く ErgoDox EZ を利用したいときに使える Tips をご紹介しました :thumbsup:

ちなみに、ノート PC 側の日本語キーボードを入力に使いたくなった場合は、
キーボードのレイアウトを 日本語キーボード に戻すことで正常に使えるようになります:pencil:

また、日本語/英語キーボードを共存させることが出来れば、
ErgoDox EZ でもノート PC 側のキーボードでも、
常に正しくキー入力出来る環境が整えられそうなことが分かったので調べていました :mag:

しかし、現時点 (2020/05/07) では、
日本語/英語キーボードを共存させる仕組みは無さそうでした... :arrow_down:
日本語キーボードと英語キーボードの共存

より良い対処法がもしあれば、是非ご教授いただけますと幸いです。。:bow: :pray: :sweat_drops:

参考リンク