## 第一步
连接服务器
~~~
ssh user@your.server.com
~~~
## 第二步
添加一个用户
~~~
sudo adduser git
~~~
## 第三步
初始化git裸仓库,也叫做中间仓库
~~~
sudo git init --bare sample.git
~~~
## 第四步
修改裸仓库的所属用户
~~~
sudo chown -R git:git sample.git
~~~
## 第五步
禁用shell登录
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑`/etc/passwd`文件完成。找到类似下面的一行:
~~~
git:x:1001:1001:,,,:/home/git:/bin/bash
~~~
改为:
~~~
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
~~~
这样别人就不能通过`ssh user@your.server.com `连接你的服务器,只要连接就会自动断开,别人就无法使用shell来操作你的服务器;但是可以使用你服务器的git。
## 最后
clone 服务器上的代码
```
git clone git@server:path
```
`git`代表的是我们刚才创建的用户
`server`代表的是我们的服务器地址,可以是域名或者ip
`path`代表的是裸仓库保存在服务器的具体位置
例如`git clone git@www.baidu.com:/www/sample.git`
## 如何将本地代码保存到服务器上
- 如果是通过`git clone`从服务器上clone下来的代码,直接`git push`就行啦(前提是你只有一个master分支哦,多个分支需要指定push的分支,例如 `git push origin dev`)
- 如果你的项目是在本地已经`git init`过了的,可以通过例如`git remote add git@www.baidu.com:/www/sample.git`添加远程仓库。
- 如果你的项目是从github上面clone下来的可以通过例如`git remote set-url --add git@www.baidu.com:/www/sample.git`方式添加,这样你`git push`时既可以将代码同步到你的服务器上,也可以同步到github