ページ

2009年11月3日火曜日

github を使う

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

github

github にアカウントを作成した。




xcatsan's Profile - GitHub

サンプルのソースコードは今後ここへおいていくことにする。


git

git はここから入手した(v1.6.5.2)。


Git - Fast Version Control System

ダウンロードしたら適当な場所で展開し、make と make install を実行するだけ。~/bin/ 配下にインストールされるのでパスを通しておく。
(例).bash_profile 内の PATH設定へ追加する

  export PATH=$PATH:~/bin

git をインストールしたら、github で画面上の指示に従いリポジトリを作成する。

SSHの鍵まわりは下記に注意する。

秘密鍵ファイルのパーミッション
=> 600 にしておく。
$ cd ~/.ssh
$ chmod 600 github.xcatsan.mac.com.key
$ ls -l github.xcatsan.mac.com.key

秘密鍵ファイルの名前を変えた場合
=> ~/.ssh/config にホスト名と紐づけておく。
~/.ssh/config へ下記を追加。
Host github.com
IdentityFile ~/.ssh/github.xcatsan.mac.com.key



Xcode で使う

xcode 自体は git をサポートしていない。この為、コマンドラインで使うか別の GUIツールなどを使う。

(参考)
Can git be integrated with Xcode? - Stack Overflow


Xcode のプロジェクトではリポジトリに入れる必要の無いファイルが多数あるため、.gitignore へそれらを記述しておく。

(参考)


上記から引用するとこんな感じ。
# xcode noise
build/*
*.pbxuser
*.mode1v3

# old skool
.svn

# osx noise
.DS_Store
profile
これを .gitignore というファイルに書いて、リポジトリディレクトリへ入れておく。


HelloWorld

試しに Xcode で新規にプロジェクトを作り github へ入れてみる。

Xcode で SampleCode/ 内に HelloWorld という Cocoa Application プロジェクトを新規作成する。
$ cd SampleCode
$ ls
HelloWorld

リポジトリへ追加する。
$ git add HelloWorld

status で状況が確認できる。
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD ..." to unstage)
#
# new file:   HelloWorld/English.lproj/InfoPlist.strings
# new file:   HelloWorld/English.lproj/MainMenu.xib
# new file:   HelloWorld/HelloWorld.xcodeproj/TemplateIcon.icns
# new file:   HelloWorld/HelloWorld.xcodeproj/project.pbxproj
# new file:   HelloWorld/HelloWorld_Prefix.pch
# new file:   HelloWorld/Info.plist
           :
           :

追加されたファイルの一覧が表示される。

ローカルのリポジトリへコミットする。
$ git commit
$ git commit
[master a4ae7fb] test
 31 files changed, 3111 insertions(+), 0 deletions(-)
 create mode 100644 HelloWorld/English.lproj/InfoPlist.strings
 create mode 100644 HelloWorld/English.lproj/MainMenu.xib
    :
    :

リモート(github)へ反映する。
$ git push
$ git push
Counting objects: 49, done.
Compressing objects: 100% (40/40), done.
Writing objects: 100% (48/48), 2.07 MiB | 882 KiB/s, done.
Total 48 (delta 7), reused 0 (delta 0)
To git@github.com:xcatsan/SampleCode.git
   d7c0313..a4ae7fb  master -> master

これで github に出てくるようになる。


中を見ると buildディレクトリが入っていた。.gitignore が働いていない?

別のサイトを調べてみた。

Git ignore file for Xcode projects - Stack Overflow

.DS_Store
*.swp
*~.nib

build/

*.pbxuser
*.perspective
*.perspectivev3
*.mode1v3
*.mode2v3

.gitignore の内容を上記で差し替えて新しいプロジェクトで試す。

$ ls
HelloWorld Helloworld2 README
$ ls -F Helloworld2/
English.lproj/  Helloworld2_Prefix.pch build/
Helloworld2.xcodeproj/ Info.plist  main.m
$ git add -A
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD ..." to unstage)
#
# new file:   Helloworld2/English.lproj/InfoPlist.strings
# new file:   Helloworld2/English.lproj/MainMenu.xib
# new file:   Helloworld2/Helloworld2.xcodeproj/TemplateIcon.icns
# new file:   Helloworld2/Helloworld2.xcodeproj/project.pbxproj
# new file:   Helloworld2/Helloworld2_Prefix.pch
# new file:   Helloworld2/Info.plist
# new file:   Helloworld2/main.m
#
今度は build が無視されているようだ。その他、登録ファイルも前回に比べ少ない。

github へ push する。
$ git push
Counting objects: 8, done.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 2.87 KiB, done.
Total 7 (delta 1), reused 0 (delta 0)
To git@github.com:xcatsan/SampleCode.git
   d697ca1..1a868dd  master -> master
$

github でも build ディレクトリが無いことが確認できた。良さそうだ。





git の使い方は Git入門 - トップページ が参考になった。



GitX

GUIツールを入れてみた。




なかなか良さそうだ。