搭建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
# 如果带端口的话(ssh端口默认22,不是的话需要带端口)
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
viencoding.com版权所有,允许转载,但转载请注明出处和原文链接: https://viencoding.com/article/48
欢迎小伙伴们在下方评论区留言 ~ O(∩_∩)O
文章对我有帮助, 点此请博主吃包辣条 ~ O(∩_∩)O

猜你喜欢


评论

There are no comments yet.
未登录

登录后即可发表评论

登录或注册

标签

AdSense Anaconda Android apache API apt Auth AWS B-tree Bandwagon Blog bower brew bytes Caffe Catalina certbot Charles cloudcone Composer conda CoreML CPU crontab CSS csv Cuda cv2 datetime Digitalocean DNS Docker Docker-Compose Eloquent Excel export Flask FTP GET Git GitHub GitLab Gmail GoDaddy Google GTM hash Homebrew Homestead HTML http HTTPS IDEA image imagemagick imagick imgick import InnoDB ios iou iPhone ISO8601 iTerm2 Java JavaScript JPG JS Keras Laravel Laravel-Admin lazyload Linux list Livewire lnmp load logs Lravel Mac Markdown matplotlib md5 mix MobileNet Mojave mongo MongoDB MySQL Namesilo Nginx Node npm numpy Nvidia Nvidia-Docker onevps OpenCV Openpose openpyxl oss Outline parse PayPal PHP php-fpm PhpStorm PHP扩展 PIL Pillow pip PNG POST Protobuf PyCharm pyenv pymongo Python Python,人工智能,机器学习,VOC,xml Queue Redis requests RGB Sanctum save selenium SEO Shadowsock Shadowsocks ShadowsocksR simplemde Spring Boot SQLServer ssd SSH ssl SSL证书 SSR str Sublime sudo swap Swift Tensorflow TensorflowLite Terminal Terminator timestamp Ubuntu urllib UTC v2ray Valet Validation Validator VienBlog virtualenvs VPN VPS Vultr Web Windows WordPress Xcode xlsx yaml YAPI YUV zip zmq zsh 上网 下载图片 主从同步 云主机 云存储 云开发 云服务器 人工智能 代码管理 优化 优惠码 伪原创 作弊与反作弊 免费ss账号 免费提现 切片 前端 加密 协议 博客 友链 双击事件 后台运行 后端 命令 国内镜像源 图标 图片操作 图片转换 域名 多身份认证 大小写转换 姿态检测 安卓模拟器 安装 定时任务 定时执行 密码 密钥 导出导入 小程序码 延迟加载 异常 微信 微信小程序 快捷方式 慢查询 懒加载 提现 搜索引擎 搬瓦工 搭梯子 教程 数据库 数据重复 文件上传 无法登录 日志 日期 时区 时间 时间戳 服务器 机器学习 权限 梯子 模拟浏览器 港版支付宝 漏洞 爬虫 生活服务 用户管理 病毒 登录 目标检测 科学上网 系统升级 索引 组件 组件开发 编辑器 自动付款 自定义组件 英文伪原创 计划任务 计算机视觉 订阅通知 认证 语法 读写分离 远程仓库 远程连接 配置文件 重定向 错误异常 错误提示 队列 阿里云 香港 香港手机号
亲情非友情链接