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

Tags of current page