git小记
今天用git,把文件上传到服务器,然后下载下来,这些过了一遍。发现,在linux上git是最好用的。。。
git不像svn一样分服务端客户端,git在linux只需要一句命令
1 | $ sudo apt-get install git |
之后,既可以做服务端,可以做客户端。
服务端
如果想使用git做服务端,第一步就是创建git用户
1 | $ sudo adduser git |
然后就是创建版本库了,比如,我准备把仓库test
放在/home/wwwroot/
下,则
1 | $ cd /home/wwwroot |
这里有个要说明下,--base
参数是不把项目原文件放在仓库目录下,而是以另一种形式储存,也就是说,如果你把 a.php
文件上传到git仓库,则你在 test
文件夹中根本找不到 a.php
这个文件。
如果不加 --bare
参数,会出现一系列问题,现在我还没研究透,待我研究透侧了,再来补充。
这样服务端基本配置就好了,接下来就是客户端了。。
附
这里先假设一些东西,
- 服务器的ip是: 192.168.110.110
- 客户端1把项目储存在 ‘/home/wwwroot/default/test’ 目录下
- 把项目放在web服务器上 ‘/home/wwwroot/test.com’ 目录中,让外网访问
则
客户端1
1 | $ cd /home/wwwroot/default |
现在 /home/wwwroot/default/test
就是你的工作目录,或者可以把 /test/.git
文件夹移到你的工作目录下。。
然后就是在有 .git
文件夹下,输入下面命令
1 | $ git add . #当前目录下的所以文件加入到版本库中,如果不像所有,可以 git add 具体文件 |
上面这是在第一次提交文件,或者git仓库是空的情况下,假如是第二次提交,或者版本库中以有内容,则是。
1 | $ git commit -am "自己随便写" |
web服务器
1 | $ cd /home/wwwroot/test.com |
当客户端1的项目更新提交了后,
1 | $ git pull origin master |
Other
免密码
这里git文件传送使用的是ssh,所以其实也是ssh免输入密码的方式。
首先,编辑 /etc/ssh/sshd_config
1 | $ vim /etc/ssh/sshd_config |
在客户端上使用
1 | $ ssh-keygen -t rsa -P '' |
把 id_rsa.pub
文件中的内容复制,粘贴到服务端 ~/.ssh/authorized_keys
中
authorized_keys
文件的权限必须是644
1 | $ cd ~/.ssh |