by 08 github服务器搭建 - nuanxin1111/react GitHub Wiki

攻略:

主要参考廖雪峰的教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000

第一步当然是安装git喽:$ sudo apt-get install git

第二步创建git用户管理git服务器: $ sudo adduser git

第三步收集用户证书,所有需要跟这个服务器交互的用户需要提交自己的ssh公钥到远程服务器的指定目录
公钥的生成口令为$ ssh-keygen -t rsa -C "[email protected]"。把所有公钥导入到
/home/git/.ssh/authorized_keys文件里,一行一个。eg: cat baiyang.pub >> authorized_keys

第四步创建一个空的库:$ sudo git init --bare sample.git,--bare说明这个初始化的是一个空库,
只做版本记录,没有工作区,所以一些操作无法在生成的sample.git里操作。sample这个名字也是随便命名的,看
个人兴趣爱好

第五步,更改所有权:$ sudo chown -R git:git sample.git

第六步,禁用shell,此处从略

第七部,在本地克隆远程库。 

eg: git clone [email protected]:/home/git/gitpro/test/sample.git
正克隆到 'sample'...
warning: 您似乎克隆了一个空版本库。
检查连接... 完成。

当克隆完毕后使用git remote可以看到远程库名被默认为orgin
然后就可以在本地进行操作了,因为远程的是个空库,所以远程也没有分支,本地也没有分支。
无视之,编码,然后add -A * ,commit -m "第一次提交好紧张".
然后push到服务器,这里要注意使用命令$ git push -u origin master

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,
Git不但会把本地的master分支内容推送的远程新的master分支, 
还会把本地的master分支和远程的master分支关联起来,
在以后的推送或者拉取时就可以简化命令。

其实push的原型是:git push 远程主机名 本地分支名:远程分支名
如果省略远程分支名,则表示将本地分支推送与存在最终关系的远程分支,
如果远程分支不存在,则会被新建。
如:git push origin master,表示将本地master分支推送到origin
主机的master分支上。如果省略本地分子名,则表示要删除远程主机中分支,
如git push origin : master,则表示删除origin主机中master分支

暂写这么多,后面如有需要,再继续补充。