ubuntu14.04使用git服务器说明:
1.简介:git属于分布式版本控制器,其实每个人的电脑都是一个完整的版本库;比如两个人在局域网写一个项目,那么这两个人的电脑里面都是一个完整的项目,当有新的代码出现的时候,直接push给对方即可。当然人多的时候,又不在局域网里面,不可能push给每一个人,git的解决方案是用一台电脑当做集中的版本库,大家把新代码都push到上面去,要得时候在pull到自己电脑上。
你的文件一共可以放在三个地方,一:你的本地库,二:你的当前修改缓存,三:公共服务器的远程库。在使用git服务器时,需要先在自己电脑上建立一个本地库,用来存放和克隆远程库的内容,当然克隆前应该先初始化一下。然后当你对你当前本地库里的文件进行完更改之后,它只是停留在本地缓存,你需要提交命令来将更改保存到本地库,在这完成之后,你需要将你的修改完的新版本的库push到远程服务器的库中。这样当别人在他的电脑上更新远程库后,就可以看到你修改的内容,当然还可以看到修改之前的版本。
2.实验室服务器说明:
实验室git服务器ip地址为IP
实验室git服务器登陆用户选择bupt-server-1,一般修改在这个用户下进行。登陆密码为teamserver。
实验室git服务器git用户密码为:*****
实验室git服务器的本地仓库在/home/bupt-server-1/git_repo_local下,也就是在主文件夹下的git_repo_local,在线远程仓库在/home/git_repo下。
实验室git服务器的账户管理,包括增加管理员,新建项目,和指定用户权限,这些需要修改gitosis的配置文件,然而gitosis的配置文件也是一个库,我已经将它克隆在/home/bupt-server-1/gitadmin文件夹下,文件夹下有连个文件,一个是keydir用来存放由权限访问git用户的公钥,另一个是gitosis.conf,用来配置具体的仓库用户和权限,和管理员配置。当然以上这些修改,都必须是管理员才有权限来修改的。
具体的操作,参考http://blog.csdn.net/michaelhan3/article/details/51637271“管理gitosis的配置文件”部分。
3.快速使用git服务器(以下命令都是在终端)
前提确保你的电脑和git服务器在同一个局域网内!
安装git相关软件:
sudo apt-get install git-coreopenssh-server openssh-client
安装配置gitosis初始化一下服务器的git用户,这一步其实是为了安装gitosis做准备。在任何一 台机器上使用git,第一次必须要初始化一下:
git config –global user.name “myname”
git config –global user.email “myname@server“
安装一下python的setup tool, 因为gitosis的安装用到了python的一工具,这个也是为了gitosis做准备:
sudo apt-get install python-setuptools
获得gitosis包:
cd /tmp
git clone https://github.com/res0nat0r/gitosis.git
cd gitosis
sudo python setup.py install
获取本机的公钥
ssh-keygen -t rsa
该命令只需一直按回车键即可,知道命令直行结束,你的公钥存储在/home/你的ubuntu的机器名子/.ssh/id_rsa.pub,id_rsa.pub就是你的公钥,但是是不可见的,你需要在终端使用cp命令将它拷贝出来,
例如:sudo cp -a /home/你的ubuntu的机器名子/.ssh/id_rsa.pub,id_rsa.pub /你自己准备放公钥的文件夹
然后将该公钥交给管理员,管理用将该用户的公钥重命名为该人的名字(为了在项目中方便),将其拷贝到/home/bupt-server-1/gitadmin/keydir下,然后再修改gitosis.conf文件。
管理员需要将本地修改push到在线的仓库,这样才会生效。
cd
cd /gitadmin/gitosis
git add . 注意有个点,点前有空格
git commit -am "add a user permission"
git push origin master
新增的用户不能立即生效,这时候需要重新启动一下sshd服务
sudo /etc/init.d/ssh restart
接下来那个添加好公钥,并且是某项目的成员的机器,就可以克隆该项目了
建立一个自己的本地仓库,就是文件夹
进入文件夹,使用命令git init初始化一下
克隆项目
git clonegit@IP:/home/repo/han_test_prj.git
这里的han_test_prj.git是我建立的测试仓库,你需要克隆你自己需要的仓库,且你必须是有权限的。
到此,你已经克隆了远程仓库的内容到你的本地仓库了,接下来你可以修改和使用了。
当你修改了以后将其push到远程服务器
git add . 你添加了修改命令
git commit -am "this is b added" 你提交的修改命令引号内需要说明的是你这次提交的说明
git push origin master 将修改push进远程服务器,如果这句有错误,在该句执行前加上git remote rm origin再试试
4.安装linux下git服务器可视图形客户端
参考下面网址安装,推荐使用Git-cola和gitg客户端。
http://blog.csdn.net/jfkidear/article/details/14209823
安装Git-cola客户端命令:sudo apt-get install git-cola
安装gitg客户端命令:sudo apt-get install gitg
如果安装失败,请更新一下软件,命令apt-get update
5.创建仓库,修改,以及提交推送到远程服务器
创建仓库:假设创建slam.git的仓库
目前需要在服务器本机上,进入git用户下,创建仓库
su git
cd /home/git_repo
mkdir slam.git
cd slam.git
git init --bare
exit
现在,在远程服务器已经建立了一个空的仓库,但是空仓库是不能克隆的,所以需要在服务器本地仓库给它一个初始化的版本
初始化远程服务器的slam.git仓库:
mkdir slam-roi
cd slam-ori
git init
echo "/*add something*/"> readme
git add.
git commit -am "initial version"
git remote add origin git@IP:/home/git_repo/slam.git
git push origin master
到目前,在远程服务器上已经有一个已经初始化后的版本,可以在其他机器上克隆和提交了
在另一台机器上
建立一个文件夹作为你的本地仓库:
mkdir myGitRepo
cd myGitRepo
git init
git clone git@IP:/home/git_repo/slam.git
密码是927git
然后你就在你的本地仓库克隆了远程服务器上的slam.git仓库
在仓库里加上main.cpp文件后
git add . main.cpp
git commit -am "说明"
git push origin master