taksatouの日記
for my convenience
2011-11-06
2011-07-21
tcpdumpの使い方メモ
例えばmysqlだと以下でselect文がみれる。
sudo /usr/sbin/tcpdump -l -i eth0 -A -n -s 0 dst port 3306 | grep SELECT
unix ドメインソケットにながしてるデータを見る方法がないかあとで調査
2011-06-25
railsのデフォルト起動ポートを変更する方法
config/boot.rbに以下を追記する
require 'rails/commands/server' module Rails class Server def default_options super.merge({ :Port => 4000, }) end end end
2011-06-04
gitで迷子になった(no branch)に復帰する方法
gitを使って開発しているときに、以前のコミットのハッシュを直接指定してブランチを切らずにcheckoutすると(no branch)という無名のブランチができます。
どうしてそんなことをするかというと、例えば、開発を進めてる途中で別のやり方を思いついて以前の状態からやり直したいけど、あんまり自信ないからbranch切って名前つけるのはめんどくさい、みたいなときとか。
まあブランチきればすむ話ですが、とにかくno branchで作業しちゃうときもあるのです。そういうときに限ってうまく実装できて、no branchで作業していることを忘れてそのままcommitしてしまったりします。
で、なにげなくmasterに戻ってみるとさっきの作業内容が見えなくなって焦るわけです。
そういうときはno branchでコミットしたときのハッシュ値を直接指定してやればno branchでの状態に戻れます。no branchでコミットしたときのハッシュ値を確認する方法は知る限り2つあります。
1つめは、no branchから別のブランチに移ったときのメッセージから拾う方法です。
% git checkout master Previous HEAD position was 49aaa59... foo Switched to branch 'master'
checkoutしたときに直前のハッシュが表示されるので、これが残ってれば問題ありません。
が、そもそもno branchがみえなくなって焦るような人は、こういうメッセージはスルーして迂闊に別作業をやっちゃったりしてると思うので期待できません。
2つめは、.git/logs/HEAD を調べる方法です。(2011-06-26追記:git reflogまたはgit log -g --oneline でも同等のものが確認できます)
.git/logs/HEADはプレーンテキストなのでこれをたどればgit logに表示されないコミットも確認できます
% cat .git/logs/HEAD 0000000000000000000000000000000000000000 2759433440f4206e12ae1f2360e5c37f960e7bb6 takayuki <hoge@gmail.com> 1307189044 +0900 commit (initial): first 2759433440f4206e12ae1f2360e5c37f960e7bb6 4aaac8e7ff28ba47eeb32c312059b7b36fe62617 takayuki <hoge@gmail.com> 1307189060 +0900 commit: second 4aaac8e7ff28ba47eeb32c312059b7b36fe62617 2759433440f4206e12ae1f2360e5c37f960e7bb6 takayuki <hoge@gmail.com> 1307189084 +0900 checkout: moving from master to 2759433440f4206e12ae1f2360e5c37f960e7bb6 2759433440f4206e12ae1f2360e5c37f960e7bb6 49aaa59fb6137ef818a8ca4129fdbad07805586f takayuki <hoge@gmail.com> 1307189119 +0900 commit: third 49aaa59fb6137ef818a8ca4129fdbad07805586f 4aaac8e7ff28ba47eeb32c312059b7b36fe62617 takayuki <hoge@gmail.com> 1307190160 +0900 checkout: moving from 49aaa59fb6137ef818a8ca4129fdbad07805586f to master
これで目的のコミットのハッシュ値を指定してmergeするなりcheckoutしてbranchきるなりすればOKです。