git服务器搭建
2017-05-01 20:55
120 查看
修改程序都是在本地电脑上,运行程序则需要在服务器上,想在本地电脑和服务器做同步
服务器:ubuntu16.04,公网,没有root权限,用户名为jankyee
git版本:2.7.4
git服务器搭建在服务器上(有公网IP)
在服务器的
ssh配置,在
todo
注意区分开github所要用的key,我的github的key的生成方式是
为了使两者同时可以使用,还要配置一下。首先新增配置文件:
之后修改权限
然后修改config文件内容为
通过
配置客户端免密码登录服务器,将生成的
首先将公钥文件上传到服务器上
注意这里写的是简写
port后面是没有冒号的
登录服务器(这是仍需要密码)
再次登录时可发现已经不需要密码了。另外在做git操作的时候同样也不需要密码了
如果没有配置上面的步骤的话,客户端在
clone服务器的版本库。选择合适的目录
尝试修改提交(master分支默认为当前分支)
一种方法是直接使用本地路径,首先确定合适的工作目录
在
一种方式是把git服务器和git客户端看成两个独立的网络实体,只不过这时git服务器的地址变成了localhost。同样地,按照客户端的步骤,生成公钥-私钥对,同样地,讲公钥追加到
Refer:
[1] http://www.jianshu.com/p/10b6a1ee7f64
[2] http://blog.csdn.net/hustpzb/article/details/8230454/
1. 环境
本地电脑:ubuntu16.04,局域网, 用户名jankyee服务器:ubuntu16.04,公网,没有root权限,用户名为jankyee
git版本:2.7.4
git服务器搭建在服务器上(有公网IP)
2. 服务器配置
网上流传的步骤一般是新建一个git用户[1],但是由于服务器上没有root权限,因此直接使用用户名jankyee。而与服务器的连接使用ssh在服务器的
/home/jankyee目录下新建一个名为
lab_server.git的仓库:
git --bare init lab_server.git
git init和
git --bare init的区别:用
git init初始化的服务器仓库,服务器用户可以直接执行所有git操作来修改仓库,当有其他用户push上来时可能会冲突,导致版本混乱。而
git --bare init则产生一个“裸”仓库,意思就是这个仓库只保存git提交记录的版本信息,而不允许服务器用户直接在上面进行进行git操作,否则会报错
This operation must be run in a work tree。一般来说,服务器仓库一般初始化为裸仓库较好。
ssh配置,在
/home/jankyee/.ssh中新建文件
authorized_keys, 将客户端的公钥填入文件中,一行一个(后面会详细讲)
todo
3. 客户端(本地电脑)配置
生成公钥-私钥对ssh-keygen -t rsa -f ~/.ssh/id_rsa.lab_server -C "jankyee@jankyee-pc.com"
-C参数是用来标识身份的,是放在生成的公钥的末尾的。我们知道在生成github的key的时候[2]这里填的是自己的github邮箱账号,这里我用了一个假的邮箱域名,其实随便填都可以。如果不填的话在公钥末尾就是用户名+主机名,我这里是
jankyee@jankyee-pc。这个标识代表的git用户的身份,git仓库的版本信息中会有记录。有时需要配置
git config user.email,那么这里的这个
user.email就是这个标识,其实不一定非要是“邮箱”
-f用来指定生成的位置,以及文件名。
注意区分开github所要用的key,我的github的key的生成方式是
ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "邮箱账号"
为了使两者同时可以使用,还要配置一下。首先新增配置文件:
touch ~/.ssh/config
之后修改权限
chmod 600 ~/.ssh/config
然后修改config文件内容为
通过
ssh-add -l命令可以看到当前的key的情况,也可以添加,删除等,具体使用参照help
配置客户端免密码登录服务器,将生成的
id_rsa.lab_server.pub公钥填写到服务器的
~/.ssh/authorized_keys中
首先将公钥文件上传到服务器上
scp ~/.ssh.id_rsa.lab_server.pub labserver:/home/jankyee/.ssh.
注意这里写的是简写
lab_server, 如果是全写的话
scp ~/.ssh.id_rsa.lab_server.pub jankyee@ip:port/home/jankyee/.ssh
port后面是没有冒号的
登录服务器(这是仍需要密码)
ssh lab_server
cd ~/.ssh
cat id_rsa.lab_server >> authorized_keys(注意:使用
>会直接覆盖,使用
>>则是在后面追加)
再次登录时可发现已经不需要密码了。另外在做git操作的时候同样也不需要密码了
如果没有配置上面的步骤的话,客户端在
git commit的时候会提示需要配置
git config --global user.email等
clone服务器的版本库。选择合适的目录
git clone lab_server:/home/jankyee/lab_server.git
尝试修改提交(master分支默认为当前分支)
cd lab_server
touch test_git
git add test_git
git commit -m "test git"
git push origin master
4. 服务器上查看文件内容
裸仓库是看不到文件内容的,只能看到文件的版本信息,而如果需要在服务器上查看文件的话(也就说最开始说到的同步),其实只用在服务器的工作目录下clone下就行了,相当于服务器上同时存在git服务器和git客户端一种方法是直接使用本地路径,首先确定合适的工作目录
git clone 仓库的本地路径
在
git commit的时候提示需要配置email,前面也已经说过,填上主机名或者随便即可,只要能确定自己身份就行。
一种方式是把git服务器和git客户端看成两个独立的网络实体,只不过这时git服务器的地址变成了localhost。同样地,按照客户端的步骤,生成公钥-私钥对,同样地,讲公钥追加到
authorized_keys文件后面,其余配置和前面说的客户端配置一样。
Refer:
[1] http://www.jianshu.com/p/10b6a1ee7f64
[2] http://blog.csdn.net/hustpzb/article/details/8230454/
相关文章推荐
- Fedora 12 ftp,http及GitWeb服务器搭建(网页版)
- git服务器搭建
- windows 下 git 服务器的 搭建
- CentOS下搭建Git服务器Gitosis
- RHEL下搭建GIT服务器
- Git服务器在Ubuntu中的搭建
- CentOS下搭建Git服务器Gitosis
- Git服务器在Ubuntu中的搭建
- Ubuntu 10.10搭建git服务器
- 局域网搭建小组级git服务器
- CruiseControl 安装 配置 教程 实例 搭建服务器 (CruiseControl + git/svn)
- git web 服务器的搭建
- ubuntu 服务器搭建,bugzilla,git安装配置
- git服务器搭建
- 在ProjectLocker上搭建自己的GIT服务器
- 小组级git服务器搭建
- Ubuntu中Git服务器搭建
- Ubuntu10.04搭建Git服务器和GitWeb
- Ubuntu上git服务器的搭建
- git服务器搭建