今更ですがgit入門
ふとiPhoneのサンプルコードとか入れておくと便利かなと思い、使ってみたくなったので環境を整えてみました。
インストール
gitのサイトからv1.6.2.3のソースを取得してインストール。
$ tar zxvf git-1.6.2.3.tar.gz $ mv git-1.6.2.3 /usr/local/src $ cd /usr/local/src/git-1.6.2.3 $ ./configure --prefix=/usr/local/git $ make $ sudo make install
githubに登録
アカウントは少し前に作っていたのでssh関連から。
1. public key を登録
アカウントページからpublic keyを登録します。public keyは以前作っていたものをそのまま利用しています。さくらサーバでsvn+sshを利用する方法(Linux/Mac)
2. ~/.ssh/config を作成
Host github.com User git Port 22 Hostname github.com IdentityFile ~/.ssh/your_id_dsa TCPKeepAlive yes IdentitiesOnly yes
3. レポジトリ作成
dashboardのcreate new oneからレポジトリを作成。
ProjectName: iphone-samples Description: iPhone programming samples.
作成すると説明がでてきたのでその通りに実行しました。
$ git config --global user.name "your name" $ git config --global user.email your@mail.address $ mkdir ~/Desktop/iphone-samples $ cd ~/Desktop/iphone-samples/ $ git init $ touch README $ git add README $ git commit -m 'commit test.' $ git remote add origin git@github.com:ntaku/iphone-samples.git $ git push origin master
いろいろメッセージが出て無事プッシュ完了。
githubで参照するとファイルが追加されていました。
gitに慣れる
とりあえずgithubは問題なく使えそうな感じなので、gitに慣れるために色々試してみました。
ローカルレポジトリ
まずは適当にレポジトリを作成してファイルをコミット。
$ mkdir local_git $ cd local_git $ git init // レポジトリ初期化 $ touch readme $ git add . // ファイルを全て追加 $ git status // 変更ファイルを確認 $ git commit -m 'first commit' // コミット $ git log // 履歴を確認
別のブランチを作成してmasterブランチから切り替え。
(SVNみたいにtrunkという概念はなくて全部ブランチ)
$ git branch 20090417 // ブランチを追加 $ git checkout 20090417 // ブランチを切り替え $ git branch // ブランチが切り替わっていることを確認 $ echo 'test' > readme // ブランチを修正 $ git commit -a -m 'commit from branch' // コミット $ git checkout master // masterに切り替え $ git merge 20090417 // ブランチの修正をマージ
タグを付けてみる。
$ git tag -a tag_20090417 -m 'add tag' // タグ追加 $ git tag -l // タグ一覧
タグをアーカイブして取得してみる。
$ git archive --format=zip master tag_20090417 > ~/tag.zip
リモートレポジトリ
ローカル環境に複数レポジトリを作成してリモートレポジトリも試せました。
リモートブランチはベアレポジトリという形で作成。
$ mkdir remote_git $ cd remote_git $ git --bare init
ローカルレポジトリの修正内容をリモートレポジトリに反映させる。
$ mkdir local_git $ cd local_git $ git init $ git remote add origin ~/Desktop/remote_git // リモートレポジトリを指定 $ git remote show origin // 上記レポジトリの情報を表示 $ touch readme $ git add . $ git commit -m 'first commit' // ローカルレポジトリを更新 $ git push origin master // 対象ブランチを指定してプッシュ
別のローカルリポジトリを作って更新内容を取得、リモートレポジトリの更新を確認する。
$ mkdir local_git2 $ cd local_git2 $ git init $ git pull ~/Desktop/remote_git $ git log
最低限使えるようになったのでこんな感じで終了です。
その他メモ
$ git config --list // configの内容を確認 $ git push [remote repo] [my repo] // ブランチの初回プッシュ $ git push [remote repo] // 2回目以降のプッシュ $ git config --global color.diff auto // カラー設定 $ git config --global color.status auto $ git config --global color.branch auto