- WindowsでGit(Github for Windowsとかのアレ)を使うときに
git add
とかをga
みたいなaliasにして楽をしようというアレ - ちなみに、PowerShellのバージョンは4.0です。確認はPowerShell上で
$PSVersionTable
をすればPSVersionとかいうのがでてくる
- PowerShellでもよくあるエイリアスというものを設定できる。
Alias
とPowerShellで打ち込んであげると設定されているエイリアスを見ることができる。- エイリアスを設定するときは
Set-Alias 設定したいエイリアス コマンドレット
みたいな感じでできる。
- PowerShellでは
Set-Alias ga "git add"
みたいに書いてもエイリアスとして設定できない!
- そもそもPowerShellはオプションを持ったコマンドレット、関数、スクリプトファイルやプログラムに対してエイリアスを設定できないらしい?参考
- (もう少し詳しいPowerShellの情報が欲しい)
- コマンドレットに関してはここを参照してください。
- PowerShellの
.bashrc
的なところに関数を書いてしまえ - PowerShellの
.bashrc
的な奴は$PROFILE
というもの、それに関数を書いてしまうワケだ
$profile
してお目当てのファイルとディレクトリ構造が出てくるのでNew-Item -Path $PROFILE -ItemType file -Force
して新しいファイルを作る(既にあるようなら作らなくてもいい)notepad $profile
とかして当該ファイルを開くfunction ga() { git add $args }
みたいに書く- 保存してPowerShellを再起動
- それっぽいことが†できる†
function gc() { git commit $args }
とかfunction gco() { git checkout $args }
とかfunction gst() { git status $args }
とかfunction gm() { git merge $args }
とかもできるワケです。(一部未確認)
- めんどくさいけどできることにはできる
gco
とかでtab補完がきかなくてつらいどうやらファイル以外の補完をしてくれない完全に存在意義を失ったgistが誕生した
- 対策を見つけた。困ったときのstackoverflowである。 ここ
- 簡単に説明すると
notepad (Get-Command TabExpansion).ScriptBlock.File
とPowerShellに打ち込み、件のGitのタブ補完設定ファイルを開く。 - 開いたファイル内で
function TabExpansion($line, $lastWord){ ~hogehoge~ }
という関数を見つける。 - そしてその関数の1行目に
$line = $line -replace '^gco ', 'git checkout '
と書いてあげて、保存。PowerShellを再起動。 - †
gco
でもTab補完が使えるようになる† - やってることは理解できると思うので解説は省略。
(というか当該記事を参照せよ) - ということなのでつまり、Tab補完使いたいけど出来ないときはこの例のように
$line = $line -replace '^gm ', 'git merge '
って書いてあげると他のコマンド群でも使えると思う
- めんどくさいけどできることにはできる
👏