読者です 読者をやめる 読者になる 読者になる

gitinstawebを試す。リモートリポジトリとローカルリポジトリを作ってみる

git

gitinstawebだとかgitweb.cgiの存在を全然知らなかったのと、
MacBook内にリモートリポジトリを作ってみてgitの管理をやったことなかったのでちょっと試してみた
参考:Git -

前提

  • ローカルリポジトリもリモートリポジトリもMac OS Xで動かす
  • リモートリポジトリは~/Documents/gitrepos
    • つまりそのディレクトリ配下に色んなプロジェクトの.gitが集まる
  • ローカルリポジトリはどこでもいい。プロジェクトごとに好き勝手なところで開発する
  • gitweb.cgiが見るディレクトリはリモートプロジェクトである~/Documents/gitrepos
  • 今回はgitreposというプロジェクトを作ってみる

やってみる

初めにベアリポジトリ(要はそのプロジェクトの .git ディレクトリだけで構成されるもののことらしい)を作る

[17:35]% mkdir gittest.git                                                              [~/Documents/gitrepos]
[17:35]% cd gittest.git                                                                 [~/Documents/gitrepos]
[17:35]% git --bare init                                                    [~/Documents/gitrepos/gittest.git]
Initialized empty Git repository in /Users/no-kumagai/Documents/gitrepos/gittest.git/


この状態でbranchを確認してももちろん何も出ない

[17:35]% git branch -v                                                      [~/Documents/gitrepos/gittest.git]
[17:43]% 


/tmpにgittestというプロジェクトを作り、readmeを作ってみてコミットまでやる

[14:53]% mkdir gittest2                                                                               [/tmp]
[14:53]% cd gittest                                                                                     [/tmp]
[14:53]% git init                                                                [/tmp/gittest]
Initialized empty Git repository in /private/tmp/gittest/.git/
[14:53]% touch readme                                                                           [/tmp/gittest]
[14:53]% git add readme                                                          [/tmp/gittest]
[14:53]% git commit -m 'first commit'                                            [/tmp/gittest]
[master (root-commit) 263288e] first commit
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 readme
[14:53]%   

(branch情報を見てみるとこんな感じ)

[17:06]% git branch                                                                             [/tmp/gittest]
* master


「git remote add」でリモートリポジトリをgitに教えて上げる。originという名前で登録。

http://progit.org/book/ja/ch4-1.html によると「git remote add local_proj /opt/git/project.git」こんな感じ
[17:42]% git remote add origin ~/Documents/gitrepos/gittest.git                                 [/tmp/gittest]


リモートリポジトリにあるリモートブランチのoriginに、さっき作ったローカルブランチであるmasterをpushしてあげる

[17:43]% git push origin master                                                                 [/tmp/gittest]
Counting objects: 3, done.
Writing objects: 100% (3/3), 205 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
To /Users/no-kumagai/Documents/gitrepos/gittest.git
 * [new branch]      master -> master
[17:43]% 

(リモートリポジトリであるgittest.gitでbranchを確認してみると確かにローカルブランチの情報が入ったのがわかる)

[17:46]% cd ~/Documents/gitrepos/gittest.git                                [~/Documents/gitrepos/gittest.git]
[17:47]% git branch -v                                                      [~/Documents/gitrepos/gittest.git]
* master 263288e first commit
[17:48]%    


最後に「git instaweb」するとgittestの情報が見れる

[17:50]% git instaweb --httpd=webrick                                                           [/tmp/gittest]

(止める時は--stop付ける)

[17:50]% git instaweb --httpd=webrick --stop                                                    [/tmp/gittest]
[17:50]%   


わーい、できたできた。
Git - Bookちゃんと読んだことなかったのだけど読みやすくていいなぁ。