在服务器搭建git仓库

我的服务器:CentOS 7.2


1.依赖库的安装

# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# yum install gcc perl-ExtUtils-MakeMaker

2.卸载旧版本git  (如果没有,直接到第三步)

如果有低版本的git,需要先卸载,再安装

git –-version   查看系统带的版本

# yum remove git   卸载原来的git


3.下载最新版本的源码包

路径: /usr/local/git     (git 是自己mkdir的目录)

cd /usr/local/git/     # 进入目录
#  wget https://github.com/git/git/archive/v2.9.2.tar.gz      # 下载
# # tar -xzvf v2.9.2.tar.gz                                         # 解压

4.安装

# cd git-2.9.2
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install


5.添加环境变量

 vim /etc/profile  

#如果没有vim,则安装vim工具   yum install vim

添加这一条:   export PATH="/usr/local/git/bin:$PATH" 

source /etc/profile   #是配置立即生效

6.查看版本号,安装成功了


# git --version

==================下边的很重要===============================


7.创建一个系统新用户tom,

useradd tom         
# 操作完上一句之后,/home/文件夹下就会多一个tom文件夹


8.创建一个Git仓库

cd /data/git //切换到希望创建工作区的目录
git init --bare sample.git             //创建一个Git仓库sample.git,此时Git会创建一个唯一分支master
chown -R tom:git sample.git            //将sample.git的所有权从root修改到新创建的tom

9.在服务器端打开RSA认证

在文件/etc/ssh/sshd_config中添加下列三行内容:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

10.创建用于存放客户端公钥的文件(注意这里的路径)    

cd /home/tom             # 切换到tom用户下
mkdir .ssh
touch authorized_keys
vim authorized_keys    # 打开放用户公钥的文件
# 把公钥保存在authorized_keys文件中,    # 如何生成密钥:http://blog.youkuaiyun.com/permanent_2008/article/details/73839384
# 以上的做完,其实就可以在本地进行操作了

11.禁止用户git通过shell进行登录

将git:x:1000:1000::/home/git:/bin/bash
修改为:git:x:1000:1000::/home/git:/usr/bin/git-shell


----------------------大功告成,开始在本地操作了--------------------------------


12.在客户端clone远程git仓库

git clone tom@127.0.0.1:/data/git/sample.git (如果出错,可以直接先在本地推点文件上去,步骤13)
其中127.0.0.1是服务器端的IP地址,这里我随便写的
(由于进行了步骤9和步骤10的设置,所以在clone仓储的时候就无需再输入密码了)

13.本地文件操作



在文件夹git0413中,有个xingdao.py文件

$ git init
Initialized empty Git repository in C:/Users/风清/Desktop/git0413/.git/
$ git add .

$ git commit -m '初始化文件xingdao.py'
$ git remote add origin tom@127.0.0.1:/data/git/sample.git   # 与远程建立连接
$ git push origin master                  # 推到远程origin的master分支上

成功啦!

===========以下是后续添加的问题=======

遇到莫名其妙的错误们:

1.在push 时候抛出这样的错误

fatal: Unable to create temporary file: Permission denied  
error: pack-objects died of signal 13  

搜索后,发现也挺频繁的。大致就是这样:

// 登录git服务器,进入你的项目
cd your_rep.git  
chmod -R g+ws *  
chgrp -R git *  
git config core.sharedRepository true  

然后再回到你本地目录,输入 git repack master




参考文章:

https://blog.youkuaiyun.com/permanent_2008/article/details/73839315

https://segmentfault.com/a/1190000008403740

http://www.jackpu.com/jie-jue-git-unable-to-create-temporary-file/


=========以下是自己操作的随笔=============================

在服务器建一个git仓库,
/data/git/sample.git 

在sample.git中,是用来存放前端,后端的文件,现在只有前端的文件,或者没有前端的文件


=========作为后端的我怎么操作======================


1.直接clone这个库下来
git clone tom@192.22.23.23:/data/git/sample.git    //域名就写你的呗

2.cd sample    # 进到这库中

3.把我自己的后端项目放进去

4.再执行一下git pull origin master

5.如果有冲突,就解决冲突(无就跳过)

6.git push origin master


# 记得每次push之前都要pull,因为不知道在这期间,有没有人push


# 如何删除远程仓库中的文件或者文件夹
1.git pull origin master

2.1 git rm hello.py       # 删除hello.py文件
2.2 git rm -r hello       # 删除hello文件夹,-r代表递归的方式(嵌套关系)

3 git commit -m '删除hello.py文件'


4.git push origin master   # 重新提交,远程的hello.py文件也就会被删除






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值