Git便利設定メモ
Gitをいろいろ触るようになってきたので、便利設定を一旦まとめるめも。
こちらGitを使い始めたらやっておきたい便利な設定いろいろ - アシアルブログとかこちらMacのターミナルでGitのブランチ名を表示する - アインシュタインの電話番号とかこちらGitコマンドをタブキーで補完できるようにする | mawatari.jpとかこちらbashでgitの現在のbranch名を表示させる | Into my webを参考に設定。
Gitコマンドのalias設定
よく使うもの/便利なものをalias登録しておく。便利。
$ git config --global alias.co checkout $ git config --global alias.ci commit $ git config --global alias.st status $ git config --global alias.br branch $ git config --global alias.hist 'log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short' $ git config --global alias.sb show-branch
Git設定の確認
~/.gitconfigに設定が記述されている。こっちを直接編集してもよい。
[color] ui = auto [alias] co = checkout ci = commit st = status br = branch hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short sb = show-branch
Gitコマンドを補完できるように設定。
ここから先はbashの話。
「git-completion.bash」を使いましょう。このファイル自体はインストールした時点で既にあるようです。パスは以下の通り。
- CentOSにyumでGitをインストールした場合
- /usr/share/doc/git-1.7.1/contrib/completion/git-completion.bash
- MacにhomebrewでGitをインストールした場合
これを例えば~/.bashrcとかに読み込むように記述する。
source "/usr/share/doc/git-1.7.1/contrib/completion/git-completion.bash"
★★2013/1/10 追記ここから★★
上記のgit-completion.bashを指定する方法だと、gitのバージョンを上げる度に設定しなおす必要がありそう。
(現にMacでgitをupgradeしてみたら/usr/local/Cellar/git/配下に1.7.xと1.8.xができている)
どうしたもんかね。こりゃ(´・ω・`)
★★2013/1/10 追記ここまで★★
Gitの現在branch名を表示させる
Git管理配下のディレクトリに入ると、現在どのbranchで作業してるかが表示されます。すごく便利。
~/.bashrcとかに以下を記述。
PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
git push origin masterしたら403エラー出た時の対処
Githubにリポジトリ作ってpushしてみたら403エラーが返ってきてしまった時の対処。
具体的には以下な感じ。
$ git push -u origin master error: The requested URL returned error: 403 while accessing https://github.com/jinkojima/hogehoge.git/info/refs fatal: HTTP request failed
こちらhttp://www.plus-p.org/Special_Blog?cmd=post&id=27を参考に設定。
ローカルリポジトリ内の.git/configを以下のように記述する。
[remote "origin"] url = ssh://git@github.com/jinkojima/hogehoge.git ※ url = https://github.com/jinkojima/hogehoge.git となってた
GrailsのProxy設定
こっちProxy環境下でGradlewを動かす時の設定 - MofuMofuFarmでゴニョゴニョしてるときに教えてもらった設定。
こちらhttp://grails.org/doc/latest/ref/Command%20Line/add-proxy.htmlとこちらhttp://grails.org/doc/latest/ref/Command%20Line/set-proxy.htmlを参考に。
※というかもう書いてあるそのままなんだけれども
概要としては以下の通り
- Proxy設定を add-proxy command で定義しておく
- 定義したProxy設定を set-proxy command でアクティベートする
# Proxy設定を定義 $ grails add-proxy [name] --host=proxy-server --port=xxxx --username=hogename * --password=hogepass *
- name - Proxy設定の名前。
- host - Proxyサーバのホスト名
- port - Proxyサーバのポート番号
- username (optional) - Proxyサーバのユーザ名
- password (optional) - Proxyサーバのパスワード
# 定義したProxy設定をアクティベート $ grails set-proxy [configuration]
- configuration - Proxy設定の名前。add-proxyの[name]で設定した名称をここに。
設定はどこにあるの?
grails add-proxy 実行後に表示されます。
参考までに自分の環境では(GVMでGrailsを管理)以下の通り。
Added proxy hogeclient to ~/.grails/ProxySettings.groovy
~/.grails/ProxySettings.groovyの中身を見てみるとadd-proxyで追加した設定と、現在どれをsetしているか(=currentProxy)が記述されてるようです。
$ cat ProxySettings.groovy mofuclient=['http.proxyHost':'proxy.mofumofu.com', 'http.proxyPort':'xxxx', 'http.proxyUser':'', 'http.proxyPassword':'', 'http.nonProxyHosts':''] currentProxy='client' hogeclient=['http.proxyHost':'proxy.hogehoge.co.jp', 'http.proxyPort':'yyyy', 'http.proxyUser':'', 'http.proxyPassword':'', 'http.nonProxyHosts':'']
Proxy環境下でGradlewを動かす時の設定
会社(=Proxy環境下)からGradlewを使ってみたら、以下のようなエラーが出たのでいろいろ設定しましたよメモ。
$ ./gradlew -Ddisable.groovydocs=true -Dgrails.home=hogehoge clean publishGuide_ja Downloading http://services.gradle.org/distributions/gradle-1.0-bin.zip Exception in thread "main" java.net.UnknownHostException: services.gradle.org at (以下略)
こちらGradleでプロキシーの設定ってどうやるの? - みちしるべとこちらプロキシ経由でGrapeを使う方法 - 豆無日記を参考に設定。…そうですか3年前に通過した地点でしたか。
Mac環境を再構築する時に確認する諸々設定めも
2012年末〜2013年始にかけていろいろとMac環境を整頓したので、そのメモ。
Finder上部にパスを表示する。
$ defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES $ killall Finder ※解除したいとき $ defaults write com.apple.finder _FXShowPosixPathInTitle -bool NO $ killall Finder
ダッシュボードの無効化
使わないので消す。
$ defaults write com.apple.dashboard mcx-disabled -boolean YES $ killall Dock ※解除したいとき $ defaults write com.apple.dashboard mcx-disabled -boolean NO $ killall Dock
アプリ隠しをDock上で半透明で表現
$ defaults write com.apple.Dock showhidden -bool YES $ killall Dock ※解除 $ defaults write com.apple.Dock showhidden -bool NO $ killall Dock
常時64bitモードで起動する。
その名の通り。
$ sudo systemsetup -setkernelbootarchitecture x86_64 ※解除 $ sudo systemsetup -setkernelbootarchitecture i386
スタックでマウスオーバー時にハイライト表示させる
Dockにスタックを作成しリスト表示させてるときに便利。
こんな感じ。
$ defaults write com.apple.dock mouse-over-hilite-stack -boolean YES $ killall Dock ※解除 $ defaults write com.apple.dock mouse-over-hilite-stack -boolean NO $ killall Dock
「Recent Applications」表示
最近つかったアプリケーションをDockにスタック表示させる。便利。
こんな感じ。
$ defaults write com.apple.dock persistent-others -array-add '{ "tile-data" = { "list-type" = 1; }; "tile-type" = "recents-tile"; }' $ killall Dock ※解除 Dock上からぽいっと。
「隠す」なDockが表示されるまでの間をなくす & 表示アニメーションのきびきび化
デフォルトだと隠れているDockにカーソルを合わせても、表示されるまでちょっと間があってもっさり感が否めません。さくっと表示します。
$ defaults write com.apple.Dock autohide-delay -float 0 $ killall Dock ※解除 $ defaults delete com.apple.Dock autohide-delay $ killall Dock
さらに表示アニメーションについても設定が可能。
※アニメなし $ defaults write com.apple.dock autohide-time-modifier -int 0 $ killall Dock ※アニメありのきびきび $ defaults write com.apple.dock autohide-time-modifier -float 0.12(★お好みで) $ killall Dock ※デフォに戻す $ defaults delete com.apple.dock autohide-time-modifier $ killall Dock
ネットワーク接続時に.DS_Store ファイルの作成を抑制する
リモートファイルサーバ接続時に.DS_Storeファイルを作らないようになる。ただしFinder動作で一部弊害もある模様。詳細(の一例)はこちらMac OS X: リモートボリュームの「情報を見る」のコメントは表示されないことがあります
$ defaults write com.apple.desktopservices DSDontWriteNetworkStores YES ※解除 $ defaults write com.apple.desktopservices DSDontWriteNetworkStores NO
Time Machineがいつまで待っても終わらない時に試してみよう
Time Machineがいつまでたってもバックアップ完了してくれない状態で年越ししました。
調べてみた結果を試してみたらいい感じに解決してくれたのでめも。
こちらMac miniにしてTimeMachineが終わらない病になった。: 開発系いろいろメモ -- ahiru studio --を参考に以下手順を。
- ~/Library/Preferences/ 配下の".plist"".plist.lockfile"ファイルを削除
- Spotlightのインデックスを再構築
".plist"ファイルはプロパティリストのことらしい。詳細はこちらプロパティリスト - Wikipedia。
各サービスやらアプリやらのユーザ設定が保存されてたりするみたい。
Spotlightのインデックスを再構築するのは、具体的には以下の手順で。
- システム環境設定のSpotlightの「プライバシー」タブを選択。
- 「Spotlightの検索から除外する場所」に「+」で一度ディスク全体を指定
- 「−」で削除する。
状況によってSpotlightインデックス再構築までは必要ないかも。実際、我が家の2環境で片方は".plist"ファイル削除だけでTime Machine元気になりました。
GVM by gvmtoolをMacに導入
MacOSX Mountain LionにGVMを導入したときのメモ。
詳細はこちらGVM: Groovy enVironment Manager - uehaj's blog
GVMとはなんぞや
こちらによると、Groovy関連のSDKを複数バージョン入れて管理できる素敵なもの、です。GVM is a tool for managing parallel Versions of multiple Software Development Kits on most Unix based systems. で、GVM was inspired by the highly useful RVM and rbenv tools, used at large by the Ruby community.なんだそうな。
具体的には
- Groovy
- Grails
- Griffon
- Gradle
- vert.x
なんかが対象のようです。
さらにはbashベースで動くので、OSも特に問わなかったりして素敵です。(実際、会社Win7PCにも導入しましたが、ほぼやったことは同じ)
インストール
適当なbash Terminalを開いて以下コマンドを叩きます。
$ curl -s get.gvmtool.net | bash
"-s"は(manによると)Silent or quiet mode. Don't show progress meter or error messages. なのでお好みで。
はまったのはJAVA_HOMEを設定していない→エラー、の流れがしばらく気づけなかったくらい?
参考までにJAVA_HOMEがないと、
Looking for a previous installation of GVM... Looking for JAVA_HOME... Not found.
とか教えてくれます。
インストールが終わると
Please open a new terminal, or run the following in the existing one: source "~/.gvm/bin/gvm-init.sh"
と教えてくれるので実行しましょう。
ちなみに.bashrcとか.bash_proflieには以下が追加されてて、毎回実行してくれます。してくれるはずです。
#THIS MUST BE AT THE END OF THE FILE FOR GVM TO WORK!!! [[ -s "★HOME★/.gvm/bin/gvm-init.sh" && ! $(which gvm-init.sh) ]] && source "★HOME★/.gvm/bin/gvm-init.sh"
お疲れ様でした。enjoy!