githubられてたのでgithubったった。

どうもです。暑いですね。
暑いと頭が痛くなります。こないだ少年野球の試合の応援にいったときも,
直射日光を浴びすぎて,かるく偏頭痛になった次第で,すごいもやしっこです。
そして,頭痛を和らげるため半袖になり体を冷やしました。
そしたら,風邪引きました。今日はだいぶよくなったので元気です。
ていうか,なんかものすごい詰んでる感じがするのだが。
まぁいい。なので,本日,エアコンを解禁しました。
先日外側にかぶせるフィルターを交換しておいてよかったお。
100均バンザイ。

github デビューにあたり。

どうもgithubられている感があるので,おじさんがんばってgithubデビューしちゃったぞの巻。
いろんな人がまとめているので,そちらを参照されたい。
なのでほぼオレ用メモ。

環境

こんなもんで十分かな?

流れ
  1. アカウント作成
  2. ssh の鍵ペアの作成
  3. 公開鍵の登録
  4. リポジトリの作成
  5. git の初期設定
  6. 既存のソース類をpush
  7. おまけで,git のコミットログのauthorとかを修正
アカウントの作成

とりあえずアカウントを作成しましょ。と言っても,さくっとできます。
http://github.com/
へアクセスして,Sign up now! をクリック。
公開鍵を登録しろごらぁと言われましたが,別にいらねんじゃね?
パスワードとか代替手段があるんじゃねーの?
そもそもSSHの鍵ペアは今は亡きノーパソのHDDの中だし。
と余裕ぶっこいてました。この後はまることも知らずに。。。
要するに,自分の公開鍵を登録しねーとpushさせてくれません。
なので,作ります。

ssh の鍵ペア作成

ssh-keygen で作りました。
rsaを使用するときは,2048ビットがデフォルト,dsa の場合は,1024ビットのみらしいです。
(死んだばあちゃんが言ってたっぽい気がする)
ワタシはDSAを使用すること選択。理由は以前もそうだったからという惰性。

% ssh-keygen -t dsa -C "whitypig@gmail.com"
# -t でタイプを指定
# -C で,コメントを指定。これを指定しないと,マシン名が公開鍵ファイルに書かれちゃうので。
# 別にマシン名が書かれてもいいんですが,シャイガイなので。
# 鍵ファイルの保存場所はデフォルトでいいかと。
# パスフレーズは,10文字から30文字で,いろんな文字種を入れるのが望ましいそうです。
# アルファベット以外にやれ記号とか,やれ数字とか。スペースもありよ。
# これもmanに書いてあります。
公開鍵の登録

ここではまった。
javascript を許可する必要があるなんて教科書に書いてなかった。
なので,add another public key をクリックしても無反応で困った。
連打もしてみたけどもやはりダメだった。
NoScriptとかで無効にしているばやいは,github.comを許可リストに入れましょう。


githubのページからログインして,Account Setting から公開鍵を登録。
余分な改行やらスペースを入れないようにね。

リポジトリの作成

github.com にログインして,Account Setting からだったかな,作成しましょう。
たしか,create a new repository とかそんな感じの所。
作成すると,それ以降の手順が表示されるのでそれに従えば大丈夫。
http://d.hatena.ne.jp/keita_yamaguchi/20080409
このページが詳しいです。感謝です。

gitの初期設定

やってる人はいいんですが,やってない人は,これやっとかないとオレみたいになるよ。
(※2010.06.05 -user.name となっていたので修正)

% git config --global user.name "whitypig" 
% git config --global user.email "whitypig@gmail.com" 
既存のソースのpush

一度pushしたのですが,git の初期設定をしてなかったので,コミットログとかに
マシン名とか書かれてて,それが表示されて恥ずかしいので,
削除して,コミットログを修正して再度pushという手間をかけました。

通常の手順はたぶん以下のようになると思う。

% cd ~/existing_project
% git remote add origin git@github.com:username/existing_project
% git push origin master
# サーバのfingerprintがどうのこうの言ってきて,~/.ssh/known_hosts に
# 追記していいか聞いてくると思います。
# フィッシングサイトに誘導されてない限り大丈夫だと思うので,yesで。
コミットログの修正

これを探すのに苦労した。
git help しても,もひとつわからず。
で,ググったところ見事に同じ需要を持っていて,かつ,解決した人がいた。
http://d.hatena.ne.jp/idesaku/20090908
こちらについても感謝です。
以下コピペですが,一応。
コミット回数が多いと結構時間かかるかもです。

% git filter-branch --commit-filter \
'GIT_AUTHOR_NAME="whitypig"
GIT_AUTHOR_EMAIL="whitypig@gmail.com"
GIT_COMMITTER_NAME="whitypig"
GIT_COMMITTER_EMAIL="whitypig@gmail.com"
git commit-tree "$@"
' HEAD

詳細については,git help filter-branch されたいです。
そして,オレもようわかってないので,git help filter-branch したいです。
引数が与えられてそれに対してごにょごにょする感じにょろ?

まとめ

そんな感じです。
銭払わない限り,public なリポジトリになるので,つまり,
登録するものはネット上に公開されるので,そのあたりに
敏感な人はよく確認してpushしたほうがいいと思う。
オレがそうだから。


ところでさぁ,push するときに使用される秘密鍵ファイルの指定はできないにょろか?
ssh で言うところの,ssh -i another_id_dsa みたいなん。
調べたけれどわからなかった。
というかgitをリモートで使う際の流れ,仕組みをわかっとらんので,
ぼちぼちと調べて学習します。

おまけ

作成したリポジトリ
例の,popup-global-mark-ring ね。
http://github.com/whitypig/popup-global-mark-ring