服务器上建立GIT仓库

来源:互联网 发布:sql.是什么意思 编辑:程序博客网 时间:2024/05/07 20:55

又开始胡折腾了, 哈哈, 今天折腾的是服务器建立GIT仓库. 嗯, 是纯仓库.

1. 保证所有操作均在root帐号下, 因为建立的将是server side的GIT仓库

2. 首先建立一个git的帐号, useradd -m git

3. 建立一个目录, 比如/var/git/test, 然后进入目录, 运行git init建立一个仓库

4. 退出该目录, 执行git clone –bare test test.git建立一个纯仓库目录

5. 使用chown -R git:git test.git将操作权限给git. 同时, 可以删除原来的test目录了

6. 给git用户设置密码, 然后su到git上, 建立.ssh/authorized_keys文件, 并将自己主机上的.ssh/id_rsa.pub文件中的内容贴出去, 这样, 就可以直接使用ssh收发git, 而不用输入密码了

7. 回到本机, 假设刚才服务器的地址是example.com, 使用git clone git@example.com:/var/git/test.git来检出仓库, 同时, 你也有了对仓库的读写操作.

每次都直接对master分支操作并提交, 显然不是一个好的方案. 有人对git的使用提出了一个很好的模型, 地址是:

http://nvie.com/posts/a-successful-git-branching-model/

这个模型有一些复杂, 我做了 一些简化:

1. 首先假设该项目有2人参与, 并有一个纯GIT仓库

2. 保证GIT仓库里有2个分支, master和dev

3. master分支保存的, 必须是可以直接当作版本发布的东西, 比如0.3beta, 0.5alpha

4. dev分支保存的, 必须是可以运行的, 无错误的版本, 以一个功能点为单位提交的版本

5. 每个开发者需要在本地建立自己的分支来开发, 且提交 以小功能点为单位, 比如, 完整了注册模块, 提交 一次, 完成了登录模块, 提交 一次. 功能开发完成后, merge进dev分支, 然后继续开发其它功能点.

6. 修改bug必须在bugfix分支上进行

7. 如果开发地点会变化, 可以考虑将部分本地分支放到远端, 单成员间注意分支名称不要相同

这么做的好处是, 需要版本发布的时候, 直接checkout master分支, 或者建立于master分支上的tag, 确保功能完备. dev分支永远是可以运行的, 这在web开发中很重要, 每次pull出来的, 都是正确的. 由于git运行本地提交, 所以开发者可以在本地做多次提交, 功能开发完成并测试通过后, 一次merge进dev, 而不需要多次与服务器同步. 修复bug的时候, 使用单独的分支, 既不影响开发, 又能快速相应bug, bug修改完成后, 直接删除该分支, 就算失败了, 也可以直接删掉分支, 而不影响其它代码.

原创粉丝点击