假设你已经在本地搭建了一个git repository,现在需要把它上传到dreamhost主机上提供给别人pull,并方便自己在不同电脑上更新使用。这是我目前用的方法,当然首先你得先知道以下东西(以下内容均为假设,表胡猜我的帐号,密码了:D)

  • DH主机名: montty (假设)
  • DH用户名: hades (需开通shell操作权限)
  • 本地Git repo: /home/hades/software

1.在DH主机上安装Git

ssh登陆DH主机,在主目录下进行以下操作安装Git

$ mkdir src && cd src/
$ wget http://kernel.org/pub/software/scm/git/git-1.5.4.4.tar.gz
$ tar xzvf git-1.5.4.4.tar.gz
$ cd git-1.5.4.4
$ ./configure --prefix=/home/hades/ NO_CURL=1 NO_MMAP=1
$ make && make install


然后把生成的/home/hades/bin添加到系统环境中

$ echo "export PATH=/home/hades/bin:$PATH" >> ~/.bashrc

2.从本地拷贝一个空(bare)的repo出来

$ cd /home/hades
$ git-clone --bare software software.git
$ cd software.git/
$ git --bare update-server-info
$ chmod a+x hooks/post-update
$ touch git-daemon-export-ok

3.把这个software.git上传到DH主机上

$ scp -r software.git hades@montty.dreamhost.com:/example.com/path/software.git

4.回到本地的原始Git repo目录,提交改变到DH主机的repo上

$ git-push ssh://hades@montty.dreamhost.com/home/hades/example.com/path/software.git

如果你嫌反复输入这么长的操作命令的话

$ git remote add git-software \
  ssh://hades@montty.dreamhost.com/home/hades/example.com/path/software.git

以后你只需要输入git-push git-software就行了

5.查看DH主机的repo

$ git-clone http://example.com/path/software.git

确认下DH主机上的repo是否已成功导入本地repo的内容及更新。

参考:

7 Reponses So Far ↓

  1. druggo:

    echo “export PATH=/home/hades/bin:$PATH” << ~/.bashrc
    箭头反了吧?

  2. 啊哦,的确,失误失误,转成HTML characters时没注意。

  3. 之前在一个社区用过subversation来让大家进行代码的修改,春节从学校回家里没拿机器回家,就把一些文档摆上svn里,在家里svn co下来,感觉也不错。但对个人来说,我还没发现版本控制对我有大帮助。
    现在这linus的这个git,也没去google它的好处,我猜google回来的也是对一些团队协作的帮助等。
    那么P记你能说说git的好处,对你的帮助么?

  4. 对个人而言,版本控制确实用处不大,尤其是这种小作坊式的东西,我也是刚开始接触git和svn,linus所极力鼓吹的distributed nature对我来说是没多大概念。

    我用git是因为它轻巧,不像svn就连个svn log也要等个几秒响应时间。

    你可以看下Linus在Google Talk的这个Tech Talk: Linus Torvalds on git视频。

    不过其实svn也蛮好用的,尤其是有了Google Code,把repository交给它托管相当的方便啊。

  5. 不过google code好像有一个问题,就是他存放的代码是open source是吧。对一些人的有一些代码还是不想存放在上面。
    我对Git的兴趣其实最大是在Linus上面,毕竟他可是个活招牌,技术有保证。

    btw:我想和你交换友情链接,可以么?(不愿意也没所谓,毕竟你blogroll大部分是现实生活中的密友,我明白的。)

  6. 我最近就开始用Google Code了,反正我没啥需要保密的,Google Code的管理很方便,又有集成的wiki,特别喜欢它生成的高亮diff,比对起来很方便。

    Linus就是过于自信了啊,一边吹自己的产品一边损别人的东西,他把用cvs的人说成脑子有问题的。

    我不太喜欢交换链接这个说法,怎么看起来都像是为了拉高PR的营销手段,至于说增加访问量…留言是刺激别人点击你的站的最好方式 :D

    当然,我这就把你的链接加上,我不喜欢加的是那种完全没有共同话题的人的链接,还有就是Q-zone的一律不加。

  7. 之前Linus讨论C和C++就可见他喜欢损别人了。
    “关于交换链接”这个,第一时间我描述我的想法时,我是想用“你能在你的blogroll里添加我为好友么“,但这话语又好像有点单向,不能突现双方交互,所以最后决定了用网上的“交换链接”一词。
    我对Q-ZONE的印象就是在我身边的朋友看q-zone的时候的回复都是随便的附和,没啥意思。Q-ZONE这环境的文章也比较言情的呢。

Leave a Reply ↓