Git Tips
pager を使わないで表示する
git コマンドの後に「–no-pager」オプションをつける。
git --no-pager log --pretty=oneline -n 5
SSH で接続できるサーバにリポジトリを置く
サーバ(ユーザ名 user、ホスト名 host)でリポジトリを置くディレクトリ(ここでは ~user/repo.git)を作る。 SSH でサーバに接続して
git init --bare repo.git
とする。「–bare」がないと後で push できない。 作業しているマシンで
git clone ssh://user@host/~user/repo.git
としてリポジトリをコピーする。 後は、必要なときに
git push origin master
もしくは
git push ssh://user@host/~user/repo.git master
などとして push する。
github にリポジトリを作成して、アップロードする
github にログインして、「ダッシュボード」「新しいリポジトリ」から リポジトリを作成する。 ローカルのリポジトリで
git remote add github git@github.com:USER/REPOSITORY.git
のようにしてリモートリポジトリを追加する。 この場合、リモートリポジトリ「github」に master ブランチをアップロードする。
git push github master
zshでの使用時の注意
たとえば
git reset --hard HEAD^
とすると「^」が zsh の拡張機能とかぶってうまくうごかない。
git reset --hard "HEAD^"
もしくは
git reset --hard HEAD\^
とする。
ファイルの更新時刻をコミットログの時刻と一致させる
git-set-file-times という perl スクリプトがあるので、 適当なページからダウンロードして使用すればよい(本家がどこなのかわからなかった)。
Ubuntu 11.10 だと rsync パッケージに入っているようで、 /usr/share/doc/rsync/scripts/git-set-file-times.gz を解凍して実行権限を与えればよい。
zcat /usr/share/doc/rsync/scripts/git-set-file-times.gz > git-set-file-times
chmod +x git-set-file-times