搭建Git服务器(Ubuntu)及远程推送线上服务器

2019-02-16 08:35:20   Git
  Git  

系统环境

  • ubuntu16.04
  • git 2.7.4

搭建Git服务

sudo apt-get update # 更新软件源
sudo apt-get install git # 安装Git
git --version # 查看git版本
sudo adduser git # 创建git用户
sudo vim /etc/passwd # 安全起见,禁止git用户登陆

将类似于git:x:1001:1001:...:/home/git:/bin/bash的位置 改为: git:x:1001:1001:...:/home/git:/usr/bin/git-shell

cd /srv && sudo git init --bare sample.git # 在/srv目录下初始化Git仓库sample.git
sudo chown -R git:git sample.git # 修改sample.git 所有者权限

注意:以下提到的/srv/sample.git都是由此而来,不做赘述

配置客户端

windows用户请用git带的git bush来操作,mac和ubuntu用户直接开terminal就好

$ssh-keygen -t rsa -C "your_email@example.com" # 生成公钥和私钥
vim ~/.ssh/config # 配置git服务器和私钥信息

按i 输入以下内容

Host my_xx # 随便起一个名字
HostName vien.org # 你的服务器ip地址或者域名,之后提到不做赘述
User git # 服务器git用户
Port 22 # ssh端口默认22就可以
IdentityFile ~/.ssh/id_rsa # 私钥位置

按esc输入wq! 保存退出 拷贝公钥到服务器配置文件

cat ~/.ssh/id_rsa.pub # 查看然后复制公钥

-------服务器操作开始-------

sudo vim /home/git/.ssh/authorized_keys # 编辑服务器用户认证文件(存放用户公钥)

将刚刚复制的公钥粘贴到这个文件中,注意一个公钥一换行

-------服务器操作结束-------

回到客户端 找一个你喜欢的目录来clone git库

git clone git@vien.org:/srv/sample.git   # clone仓库

然后大家就可以都用这个空库来搭建项目开发了 当然,你也可以push本地已有项目到这个库。进入到你的项目根目录

git init # 初始化仓库
git remote add origin git@vien.org:/srv/sample.git # 添加远程仓库
git add . # 将所有文件加入到git的index,标记追踪
git commit -m 'first release' # 提交到当前分支的HEAD节点
git push origin master # 推送到远程仓库

线上同步推送

这个操作主要用于直接把代码推送上线,便于项目上线

添加git源并安装git(已安装git可忽略此步骤)

sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git

初始化并配置一个远程仓库(服务器操作)

mkdir /srv/sample
cd /srv/sample
git init
git config receive.denyCurrentBranch updateInstead

添加本机ssh key到服务器

把本地的 ~/.ssh/id_rsa.pub 的内容导入到远程服务器的 ~/.ssh/authorized_keys 里(允许本地直接连接 git) 如果本地没有生成过key,请先生成,邮箱写你自己的就可以,其实邮箱写什么并不重要。

ssh-keygen -t rsa -C "your_email@example.com" # 生成公钥和私钥

获取本地公钥

vim ~/.ssh/id_rsa.pub  # 复制出来

放到服务器 ~/.ssh/authorized_keys

vim ~/.ssh/authorized_keys # 刚才复制的东西粘贴进来保存

添加远程地址

git remote add server ssh://root@IP地址或者域名/srv/sample

这里注意,你登录服务器用的哪个用户执行的操作,就把root换成你对应的用户名,比如你用ubuntu登录的,root就换成ubuntu。因为,~/.ssh/authorized_keys 是你当前登录用户下的文件,只有对应起来,你才能连上。并且因为有一些权限问题,如果你不对应,很容易出现没有操作权限无法写入的问题。

操作

之后你就可以通过远程名称server来进行推送了

git add .
git commit -m "first release"
git push server master
vien.tech版权所有,允许转载,但转载请注明出处和原文链接: https://vien.tech/article/48
欢迎小伙伴们在下方评论区留言 ~ O(∩_∩)O
文章对我有帮助, 点此请博主吃包辣条 ~ O(∩_∩)O

猜你喜欢


评论

There are no comments yet.
未登录

登录后即可发表评论

登录或注册