- 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 'って書いてあげると他のコマンド群でも使えると思う
- めんどくさいけどできることにはできる
👏