最近准备把自己做的小网站的代码用Git管理起来,虽然git管理已经是很不新鲜的一个事情了,但毕竟刚接触难免遇到点问题,总结一下已被以后不时之需。
1,环境,服务器是个很简单的腾讯云的服务器(自己玩,图个便宜/嘿嘿),系统ubuntu14.04,然后代码在自己的本机,ubuntu16.04。当然服务器和主机必须可以通过ssh通信才行,方法就不在这介绍了。
2,首先服务器和本机肯定都需要git环境,git安装sudo apt-get install git,安装完需要配置下,否则在推代码时会提示你global配置,导致无法推送代码:
$ git config --global user.name "Your Name(这里替换成自己的名字)"
$ git config --global user.email "email@example.com(这里替换成自己邮箱)"
3,服务器和本机都搭建好git之后,便可以搞事情了
4,先创建一个git的空仓库,git init sample.git
5,这样就可以在本机拉去这个空仓库了,首先把仓库clone下来:git clone passenger@serverIP:/home/passenger/sample.git(其中passenger为ssh登录服务器的用户名,当然最后就是目录就是git仓库搭建在/home/passenger目录下了)
6,然后我们可以试着在clone下来的仓库里边添加些文件,并提交到远程git服务器上去(一下命令都是在刚拉下来的git目录中运行的):
*新建个文件
$cd sample
$touch test_add
*利用git命令提交到远程服务器上去:
$git add . (把我们要提交的文件的信息添加到索引库中。当我们使用git commit时,git将依据索引库中的内容来进行文件的提交)
$git commit -am "first commit to server" (提交文件,并添加版本提交的说明)
$ git push origin (把刚添加的文件推送到远程服务器上去)
7,这样我们的代码就被提交到远程服务器上去了,那么在别的可以ssh登录到这台服务器上的主机也可以通过git clone 命令来进行复制代码,管理代码了。
问题:我在git push的时候遇到一个error: insufficient permission for adding an object to repository database,这里把搜索到的答案贴出来,大家如果看到就不用再费力去查了。
以下代码在服务器上运行:
打开刚才新建的仓库目录:
sudo chmod -R g+ws *
sudo chgrp -R mygroup * (此处mygroup替换为ssh登录的用户所在的一个组,我的登录用户为在sudo组,所以直接把mygroup替换为sudo)
git config core.sharedRepository true
运行完就ok了。
说明:限于水平和文笔,文章难免有错误和表达不清楚的地方,欢迎指正!自己核对可能有失误,如果对您造成误解,在此深表歉意。