现在我们看看有两个开发者(个人电脑分别是zhongjin 和 jinjinzhong)的authorized_keys文件:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAcnTC3A++ginnxr2dvtQa881abjGIzk99KQVg/sPpqvtT3espFKBs/wqrJ9naIPtCswKDMg2tBVgJzg5FimDjI44O072qAftRcjU2EEySlGDDetREOvcDxqcXzf6cAdhnKlYcPk8s46oC+SxhK0zAFZCZNc7z9GcEPOC+ESIettycDw/Bo11WfxAWS0hky2F3rYh5CRr8j7BKRsAvEaAyKwzmM9X0XCRniC2pD0ObX0/SjPwq9Q5/Vjg03muiSo5Bm/xmuHkwb4/uQglBwnaSqEr6YkL9xLMoNsQaJ1TAvTrEaZLNhWzN8iaPyKZMJEzPLX1NgeEx9AEae39N+NsJ LSGO@zhongjin ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAcnTC3A++ginnxr2dvtQa881abjGIzk99KQVg/sPpqvtT3espFKBs/wqrJ9naIPtCswKDMg2tBVgJzg5FimDjI44O072qAftRcjU2EEySlGDDetREOvcDxqcXzf6cAdhnKlYcPk8s46oC+SxhK0zAFZCZNc7z9GcEPOC+ESIettycDw/Bo11WfxAWS0hky2F3rYh5CRr8j7BKRsAvEaAyKwzmM9X0XCRniC2pD0ObX0/SjPwq9Q5/Vjg03muiSo5Bm/xmuHkwb4/uQglBwnaSqEr6YkL9xLMoNsQaJ1TAvTrEaZLNhWzN8iaPyKZMJEzPLX1NgeEx9AEae39N+NsJ LSGO@jinjinzhong至此,我们就可以实现不用输密码克隆远程仓库了:
cd /d git clone git@115.159.146.94:/home/testgit/sample.git lsgogit命令运行完后,lsgogit现在就是一个空的仓库了,现在我们可以在该仓库下添加文件,然后push到远程仓库了。
cd lsgogit touch index.php git add index.php git commit -m "test commit" git push origin master如果在这里推送失败了,极有可能是因为服务器的权限问题,就比如之前我们建的 testgit 文件夹,在这里我的解决方法是:
chown -R git:git testgit将testgit文件夹以及下面的子文件夹都赋给了git,这样就保证了推送成功。
第一次push可能会有一些提示,因为裸版本库还什么都没有,你可能需要 git push origin master写全命令,之后就没必要了,直接 git push 就可以了。
到目前为止,我们完成了第一个任务,实现了一个共享平台,既可拉取数据,又可以推送数据。
四、实现自动同步到站点目录(www)
就比如刚才我们往远程仓库推送了index.PHP文件,虽然提示推送成功,但是我们现在在服务器端还看不到效果,心理总是不爽。又比如我写了个html页面,我想在站点中马上看到,那自动同步就派上用场了。
自动同步功能用到的是 git 的钩子功能,
服务器端:进入裸仓库:/home/testgit/sample.git
cd /home/testgit/sample.git cd hooks //这里我们创建post-receive文件 vim post-receive //在该文件里输入以下内容 #!/bin/bash git --work-tree=/home/www checkout -f //保存退出后,将该文件用户及用户组都设置成git chown git:git post-receive //由于该文件其实就是一个shell文件,我们还应该为其设置可执行权限 chmod +x post-receive现在我们可以在本地计算机中修改index.php文件,或者添加一个新文件,提交到远程仓库,然后到/home/www下面,看看有���有我们刚才提交的文件。
如果你在Git推送的工程中发现推送成功 但是在www目录下并没有自己的代码,这时候你可要注意了:这是由于文件夹的权限的原因造成的! 假设你的www目录的所属的用户组为root,你可以将你的git用户加入这个组;并给git添加写入权限,或者其他解决方法,反正你要服务器上的git用户有权限进入www文件夹。
现在终于掌握了,有点小高兴。
更多 Git 教程系列文章:
Ubuntu Git安装与使用