Seasons.NET

ちょっとした技術ブログです

英語なんてわかんねーよ!!ってな人へ贈るGithub入門 for MacOS

f:id:Seasons:20081220142036j:image

Gitという分散リポジトリシステムを使い始めました。
これ自体は、MacだとMacPorts使えば楽に入ってくるのですが、
まぁローカルで管理していてもあんまりうまみがない。


せっかくならば、外にソースを公開して、みんなでいじくりまくれる
リポジトリを構築したほうが良い。


そこで便利なのが、githubというサービスです。
簡単に言えば、gitのリポジトリを作成&管理する為のサービスです。
自分でサーバーたてて管理するコストが減る為かなり楽です。


Free版だと、100MBまでという制限がありますが、まぁ普通に使う分には、
問題ない容量でしょう。登録してある言語は、Rubyが多く、LLな人達からの
人気の高さが伺えます。


まずは、アカウントを作っておきます。
これは、github.comに行き、好きなアカウントを作成してください。
特にアバターの設定は、ちとはまるので、私のこのエントリーを参考に。


アカウント作った!!
アバター設定した!!


じゃあ次は、なによ?ってなるわけで、
リポジトリ作りましょう。
Create RepositoryをClickします。
f:id:Seasons:20081220132521j:image


次に作りたいリポジトリ名、説明、自分のところのURL(サポートURLとかね)
を書いてあげます。
今回は、testというリポジトリにしました。
f:id:Seasons:20081220132518j:image


そうするとこんな感じで、リポジトリの作成の為の
チュートリアル画面が出てきます。

Global setup:
  Download and install Git
  git config --global user.email keisuke@hata.biz
      
Next steps:
  mkdir test
  cd test
  git init
  touch README
  git add README
  git commit -m 'first commit'
  git remote add origin git@github.com:Seasons7/test.git
  git push origin master
      
Existing Git Repo?
  cd existing_git_repo
  git remote add origin git@github.com:Seasons7/test.git
  git push origin master
      
Importing a SVN Repo?
  Click here
      
When you're done:
  Continue

とりあえず、gitは入れておいてください。
これは、MacPorts gitでググればだいたい情報が見つかるので割愛します。


ここからの作業は、以下の順に行い、
Global setup:→Next steps:
ターミナルを使っての作業になります。


んでMacで指定したフォルダをターミナルでさくっと開けると
便利ですから、OpenTerminalHere.appを入れておきましょう。


Downoloadしたら、Applicationフォルダに入れて、以下の画面のように
sidebarD&Dして登録しておきます。
f:id:Seasons:20081220133957j:image


こうしておくと、Finderで任意のフォルダを開き、
OpenTerminalHereをクリックするとその場所にChangeDirectoryした
状態でターミナルが立ち上がります。


んで、Next stepsの作業をしようと思うわけですが、
ここにいきなりいってしまうと実はトラップがあって、
pushがうまくいきません。


なんでかというと、pushする際にssh認証が入るので、
鍵をgithubに登録しておく必要があります。


accountのリンクをクリックして、表示されたページに、
SSH Public keyという項目があります。
ここに、自分のマシン上で作ったssh keyを登録します。


その前にキーの作り方:
ホームディレクトリにいるとする。/Users/keisukehata/←ここ

keisukehata%cd .ssh/
keisukehata%ssh-keygen

キーを生成して、

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/keisukehata/.ssh/id_rsa): 

とか聞かれるので、そのままEnter.
設定したいパスワードを入力。

id_rsa.pubってのが作られるので、次に

keisukehata%cat id_rsa.pub | pbcopy

を実行してクリップボードに内容をコピーします。

その後,*pubファイルがセキュリティ的にザルなんでパーミッションを変更し、
キーを追加しておきます。

keisukehata%chmod 600 .pub 
keisukehata%ssh-add 

そして、githubに鍵を登録します。
f:id:Seasons:20081220135345j:image


これで準備OK


ここからは、任意のディレクトリを作って、
Next Stepsの作業を行います。
ちゃんと打ち込めば問題ないはずです。


最初リポジトリを作った状態では、何もファイルが追加されていないので、
gitからリポジトリの内容を取得できません。
つまり最初何かファイルを登録する必要があります。


Next Stepまで行うとgithubのページに自分のコミットが
表示されているはずです。Next Stepsの最後にpushを行っているので、
ローカルの変更情報がサーバーに反映された事になります。


分散リポジトリでは、各自のローカルで作業変更履歴がとれる上に、
それをタイミングのいいところで、サーバーに反映する事が出来ます。
それをcommitとは呼ばす、pushと言います。
逆にサーバー側で反映された情報を引っ張ってくるには、pullというコマンドを実行します。


これらコマンドは、ターミナルで実行するわけですが、
せめて多く行う、commitや差分表示、ログは、GUIなインターフェイスで
グラフィカルに管理をしつつ行いたいものです。
そこで便利なのが、GitX

GitURL: http://github.com/pieter/gitx/tree/master

ダウロード後、メニュー

GitX->Enable Terminal Usage...

を実行し、gitxをインストールする必要がありますが、
私のMacではインストール先の/usr/local/binのbinというフォルダが
ありませんでした。これは、root権限がないと作成できないんで、
ここを参考にルート権限を設定します。


無事設定できたら、ターミナルで

root#sudo mkdir /usr/local/bin

としておきます。これでもっかい
GitX->Enable Terminal Usage...
を行うとインストールできるはずです。


では、先ほど作ったリポジトリを開いてみます。
File->Openを選び、testリポジトリのディレクトリを指定します。
するとGitXにリポジトリの内容が出てくるはずです。
f:id:Seasons:20081220141503j:image


AddやCommitは、Commitページで行えます。
f:id:Seasons:20081220141504j:image

ファイルをディレクトリに追加するとこの画面のように
追加されたファイルが表示されますから(Cmd+Rでリフレッシュ)
ファイルをダブルクリックして、右の画面にCommit登録。
真ん中の画面にコミット内容を書いてCommitしましょう。


もし、コミットに不足ファイルや誤りがあっても大丈夫。
不足ファイルや誤りを正して、Amendのチェックをチェックした
上でCommitすれば、現在のCommit情報に上書きしてくれます。


Commitやブランチの様子も見れる上に、
ブランチの切り替えもブランチ名で右クリックで
切り替えもできちゃう。


オープンソースですから自分でビルドもできます。
こんなナイスなソフトがフリーってすばらしいですね。


追記:
gitで不用なファイルをglobalで登録しない = ignore設定の方法