- 投稿日:2019-10-26T17:53:39+09:00
コマンドの引数を実行時に指定してコマンドをショートカットする方法[alias]
コマンドが長いとaliasでショートカットしたくなりますよね?
ところで、コマンドの引数を実行時に指定したいときもショートカットはできるのでしょうか?
今回はその方法を調べることがあったので、まとめておきます。
なお、今回ショートカットしたいコマンドはgit push $BRANCHNAMEです。aliasの書き方
~/.bashrcなどに以下のように書きます。
~/.bashrcalias gpu='~/.sh/gitpush.sh'alias CMD='/path/cmd.sh'とaliasで設定するショートカットの対象となるコマンドが記載されているファイルのパスを書くことがポイントです。
ショートカットしたいコマンドが記載されたファイルの配置
今回ショートカットしたいコマンドは、git push $BRANCHNAMEなので、aliasで指定したファイルにはこのように書きました。
~/.sh/gitpush.sh#!/bin/bash git push origin $@あとは、ファイルに実行権限を付与して. ~/.bashrcで読み込むだけです。
$ chmod +x ~/.sh/gitpush.sh $ . ~/.bashrc $ gpu master参考
Make a Bash alias that takes a parameter?
P.S. Twitterもやってるのでフォローしていただけると泣いて喜びます!
@gkzvoice
- 投稿日:2019-10-26T17:53:39+09:00
引数をコマンドに渡してショートカットする方法[alias]
コマンドが長いとaliasでショートカットしたくなりますよね?
ところで、引数をコマンドに渡してショートカットすることはできるのでしょうか?
今回はその方法を調べたので、まとめておきます。
なお、ショートカットしたいコマンドはgit push $BRANCHNAMEです。aliasの書き方
~/.bashrcなどに以下のように書きます。
~/.bashrcalias gpu='~/.sh/gitpush.sh'alias CMD='/path/cmd.sh'とaliasで設定するショートカットの対象となるコマンドが記載されているファイルのパスを書くことがポイントです。
ショートカットしたいコマンドが記載されたファイルの配置
aliasで指定したファイルにはこのように書きました。
~/.sh/gitpush.sh#!/bin/bash git push origin $@あとは、ファイルに実行権限を付与して. ~/.bashrcで読み込むだけです。
$ chmod +x ~/.sh/gitpush.sh $ . ~/.bashrc $ gpu master参考
Make a Bash alias that takes a parameter?
P.S. \$@と\$*の違い
これは備忘録ですが、引数の数が分からない場合の引数の渡し方も調べたところ、\$@と\$*2つあるようでした。
今回は"args1 args2"をひとつの引数としてみなしてくれる\$@"を採用しました。参考
Difference between $* and $@ in Shell2019/10/27-15:43追記
@angel_p_57さんから下記のとおり、コメントをいただきました。
その違いはダブルクォート内で使った場合のものなので、本記事のように裸で使っても違いは出ないです。
"$@"のようにして使うことをお勧めします。P.P.S. Twitterもやってるのでフォローしていただけると泣いて喜びます!
@gkzvoice
- 投稿日:2019-10-26T16:15:22+09:00
customizable-gitmoji-cliで、gitのコミットメッセージに絵文字を付ける
はじめに
gitmoji文化というものがあります。
以下は私のプロジェクトにおけるコミット履歴です。
参照:https://github.com/SnO2WMaN/customizable-gitmoji-cli/commits/master
なぜ?
いろいろあると思いますが、私は以下の理由です。
コミットの粒度を上げる
特技はgit commit -a -m いろいろ修正です!
参照:横着で神経質な私とあなたに贈るgit add -p私は放っておくとこれになっちゃうので、なんとなくカテゴライズしておくことで目標立てて開発をするようにしました。 1
Conventional Commitsの環境整えるの面倒になってきた
Conventional Commitsというものがあります。(こっちのほうがスタンダードだとは思います、少なくともJavascript / Node.js / フロントエンドサイドのプロジェクトではそうだと思います)
大体次のようなコミットメッセージです。
fix: Fix Something chore(deps): Update dependencies.これは自動でバージョン更新したりするときなどに有用なんですが、いかんせんCLIの整備やいろいろ付け加えた結果設定ファイルがモリモリ増えちゃって何が何なのかわからなくなっちゃいました。
gitmojiでは、同作者によるCLI(gitmoji-cli)が用意されていて、導入も簡単だったので良かったです。
参考
- GitHubのコミットメッセージに絵文字を入れて開発効率をあげる
- Emojiで楽しく綺麗なコミットを手に入れる
- atom/blob/master/CONTRIBUTING.md#git-commit-messages
一方
gitmoji-cliはたしかに便利だったんですが、本家のgitmojiのみしか使えなかったので、プロジェクト下において明らかに不必要な絵文字があったり、逆に痒い所の為の絵文字が無かったりしてそこはそこで不便でした。
そこで今回、カスタマイズ可能なcustomizable-gitmoji-cliを作成しました。
customizable-gitmoji-cli
オプションの詳細などはREADME-jp.mdを読んでもらえると助かります。
このCLIでは、
.gitmojircなどの設定ファイル2によって自由に絵文字を追加することが出来ます。また、ESLint/Prettier/Stylelint/etc...の共有設定ファイルのようにプレセットを読み込む機能もあります。.gitmojirc{ "emojiFormat": "emoji", "presets": ["@sno2wman/gitmoji-preset"], "rules": [ { "emoji": "?", "description": "Everything must go!!", "name": "clown_face" } ], }この設定ファイルをプロジェクトに含んでおけば、CLIからコミットをする限り、全員が同じコミット規則に従ってコミットが行われるはずです。
emojiFormat
コミット時に添付される絵文字のフォーマットを選択できます。
emoji,codeのどちらかを設定することが出来ます。
- emoji
- ?, ?, ?
? Kill process- code
:ok_hand:,:dog:,:knife::knife: Kill process(Github上などでは絵文字が表示されます)私は
emojiに設定しています。(たまに各種サービスやCI上では:knife:と表示されて見栄えが悪いので…)rules
以下の形式でgitmojiを定義してください。
{ "emoji": "?", "description": "Feel good.", "name": "gorilla" }ikatyang/emoji-cheat-sheetが役に立つはずです。
presets
まだ本家のgitmojiに対応するプレセットのgitmoji-preset-baseと、私個人の@sno2wman/gitmoji-presetしかありません…
名前解決の方法は以下のとおりです。
@username/gitmoji-preset
- そのまま読み込みます
gitmoji-preset-foo
- そのまま読み込みます
bar
gitmoji-preset-barの形にして読み込みます。
gitmoji-preset-baseを除く全てのプレセットは、プロジェクト直下にnpm i/yarn addしてインストールされている必要があります。展望
- #3
- プレセット側で設定することで、コミット履歴より自動でバージョン更新の判断などが出来るようにしたい。
おわりに 3
gitmojiが様々な場面で使われることを祈っています。
よかったらプロジェクトにスターをしてください。励みになります。
個人の感想です。 ↩
設定ファイルはcosmiconfigに対応しています。つまり
.gitmojirc,.gitmojirc.jsonなどの形式が対応しています。 ↩記事内で絵文字を使わない所が良くないと思う。 ↩
- 投稿日:2019-10-26T12:27:35+09:00
Git
共有リポジトリ
共有リポジトリは、チームメンバーで共有するリポジトリで、ソースコードのメインヴァージョンが格納されている。開発者はここにあるソースコードをpull/fetchで取り込める。
ローカルリポジトリ
作業者のマシンの上にあるリポジトリです。ローカルマシンでの作業内容が保存される。pushにより共有リポジトリに変更内容を反映する。
インデックス
ローカルリポジトリへ反映する変更を一時的に貯めておく場所。インデックスの内容はcommitによりローカルリポジトリへ反映される。
作業ツリー
ローカルリポジトリ上にある現在の作業ファイル。作業ツリーの変更点はaddによりインデックスに追加される。
流れの例
作業ツリー add index commit ローカルリポジトリ push 共有リポジトリ
コマンド
リポジトリを作成する
git initまたはgit clone URL
SQL小技集
https://qiita.com/ool/items/75da830e7373138c8125
UTCとJST
https://qiita.com/ool/items/6be9cc290c8ad9e0f5bc
今流行りの量子コンピューター
[量子コンピューター]Qisikitでアダマールゲートを実装する
https://qiita.com/ool/items/1a5041edddc11b14efc0
[Qiskitのアカウント認証の仕方]Qiskit IBMQ プロバイダー
https://qiita.com/ool/items/e80c1266cda68984a103
Qiskitの使い方
https://qiita.com/ool/items/2227d2d515caa5087752
[量子コンピューター]Qiskit Tutorials
https://qiita.com/ool/items/2a5038df1471635d442c
- 投稿日:2019-10-26T01:05:20+09:00
実務でよく使うGitコマンド一覧
git init git clone git remote git pull git fetch git merge git checkout git branch git status git diff git add git commit git log git push git reset git rebase git cherry-pick git stash git revert git rm追記: git-remind
【ペチオブ】実務で使うGit勉強会
株式会社ミライトデザインが主催するエンジニア向けオブジェクト指向ワーキンググループ「ぺちオブ」の【ペチオブ】実務で使うGit会にて学ばせていただきました。
- connpassイベントページ
- YouTubeLive
- 資料(YouTube)
