专栏首页JAVA高级架构开发搭建私有git服务器进行版本控制
原创

搭建私有git服务器进行版本控制

2860元腾讯云代金券免费领取,付款直接抵现金,立即领取>>>

腾讯云海外服务器1折限时抢购,2核4G云主机689元/1年,立即抢购>>>

腾讯云服务器1折限时抢购,2核4G云主机689元/3年,立即抢购>>>

一、安装git

分别在服务器和本地安装最新版本的git

1、服务器上源码安装最新版git

通常centos上使用yum源安装的git版本过低

检查系统上是否已经安装git,若已有则卸载

// 查看当前git版本
# git --version
git version?1.7.1

// 卸载旧版本
# yum remove -y git

安装依赖包,下载最新版本git源码

#?yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
#?wget https://github.com/git/git/archive/v2.13.2.tar.gz
#?tar zxf v2.13.2.tar.gz

安装git,配置环境变量

#?cd?git-2.13.2
#?make prefix=/usr/local/git all
#?make prefix=/usr/local/git install
#?echo?"export PATH=$PATH:/usr/local/git/bin"?>> /etc/bashrc
#?source?/etc/bashrc ? ?// 实时生效

查看git版本号,正确显示则安装成功

#?git?--version
git?version?2.13.2

若编译时报错如下

libgit.a(utf8.o): In?function?`reencode_string_iconv':
/usr/local/src/git-2.13.2/utf8.c:463: undefined reference to `libiconv'
libgit.a(utf8.o): In?function?`reencode_string_len':
/usr/local/src/git-2.13.2/utf8.c:524: undefined reference to `libiconv_open'
/usr/local/src/git-2.13.2/utf8.c:535: undefined reference to `libiconv_close'
/usr/local/src/git-2.13.2/utf8.c:529: undefined reference to `libiconv_open'
collect2: ld returned 1?exit?status
make: *** [git-credential-store] Error 1

可以按照如下方式解决

// 对之前git的make 操作进行 make clean
#?make clean
#?wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
#?tar zxf libiconv-1.14.tar.gz
#?cd?libiconv-1.14
#?./configure --prefix=/usr/local/libiconv
#?make && make install
// 创建一个软链接到/usr/lib
#?ln -s /usr/local/lib/libiconv.so /usr/lib
#?ln -s /usr/local/lib/libiconv.so.2 /usr/lib

然后

#?make configure
#?./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv/
#?make && make install
#?echo?"export PATH=$PATH:/usr/local/git/bin"?>> /etc/bashrc
#?source?/etc/bashrc

配置git 用户名及邮箱

#?git config --global user.name?'your name'
#?git config --global user.email?'your email address'

2、本地安装最新版git(此处演示为Windows上安装)

  • windows上安装直接下载最新版安装包,双击->下一步… 即可完成安装
  • 所有选项默认即可
  • 打开 git-bash,配置git 用户名和邮箱,同服务端配置第6步
  • 想要学习Java高架构、分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师视频免费获取 ? 架构群:835544715

二、服务器设置

1、添加一个git用户,为安全起见禁用shell登录

# useradd git

// 为安全起见,禁用 git 用户的?shell?登录
#?vim?/etc/passwd
// 修改 git 用户的?shell?为 git-shell,路径使用 which git-shell?查看
// 找到如下一行
git:x:1001:1001::/home/git:/bin/bash
// 修改成如下
git:x:1001:1001::/home/git:/usr/local/git/bin/git-shell

2、初始化一个项目目录为一个仓库

// 进入到项目目录
# git init

3、将该目录克隆成为裸仓库(作为中介)并设置裸仓库所有者为git用户

// 创建一个裸仓库
#?git?clone?--bare ProjectPath /srv/myProject.git

4、将裸仓库添加为远程仓库

// 进入到项目目录
# git remote add origin /srv/myProject.git

// 修改远程仓库所属主和所属组
# chown -R git.git /srv/myProject.git

5、将服务器上的项目添加到远程仓库即 /srv/myProject.git

#?git add .
#?git commit -m?'comment'
#?git push origin master

6、在该用户的家目录下面保存本地用户的公钥

#?su git
$?cd?~
$?make .ssh
$?chmod 700 .ssh
$?cd?.ssh
$?touch authorized_keys
$?chmod 600 authorized_keys
// 然后在 authorized_keys 文件中加入本地用户的公钥 id_rsa.pub

7、打开git服务器的RSA认证

# vim /etc/ssh/sshd_config
//?找到下面3行并去掉注释
1.?RSAAuthentication?yes?? ??
2.?PubkeyAuthentication?yes?? ??
3.?AuthorizedKeysFile ?.ssh/authorized_keys

三、本地设置(Windows端)

1、生成公钥并交给服务端

// 打开 git-bash,生成公钥
$ ssh-keygen?-t rsa
// 在用户目录下的.ssh目录里面会生成 id_rsa, id_rsa.pub
// 将 id_rsa.pub 里的内容拷贝到服务器上

2、在保存公钥的同级目录下面新建config文件指定ssh端口(可选)

==类似使用搬瓦工VPS的可能默认ssh端口不是22的需要配置这个==

Host your domain name?or?server ip
User 服务端添加的git用户名
Hostname your domain name?or?server ip
Port ssh 端口
IdentityFile ~/.ssh/id_rsa

3、从服务器克隆项目到本地

[email protected]:/srv/yrsc.git

4、添加远程仓库

四、测试

  • 本地更改,添加,删除项目,然后推送修改到远程仓库
  • 服务器项目目录下拉取最新的版本

想要学习Java高架构、分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师视频免费获取 架构群:835544715

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 [email protected] 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用 Gitea 快速搭建私有 Git 版本控制服务

    分布式版本控制工具 Git 已经是现代软件源代码版本控制首选方案之一。公有 Git 服务提供商 国外知名如 GitHub 国内网络延迟高,Gitlab 涉嫌对中...

    码农小胖哥
  • GitLab → 搭建私有的版本控制的托管服务平台

      GitLab 社区版:gitlab-ce-12.8.7-ce.0.el6.x86_64.rpm,可从 清华大学开源软件镜像站 下载

    青石路
  • Git私有服务器的搭建和使用

    有些时候我们既不想在网上开源,又不想付费保存,就想白嫖就可以搭建git私有服务器了?

    名字是乱打的
  • 使用SVN+apache搭建版本控制服务器

    SVN(subversion)是近年来崛起的版本管理工具,是CVS的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。作为一个运维人员安装和配置S...

    胡齐
  • linux上搭建私有Git服务器的详细教程

    远程仓库实际上和本地仓库没啥不同,纯粹为了7×24小时开机并交换大家的修改。GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司...

    砸漏
  • Gitlab(1)- 简单介绍

    小菠萝测试笔记
  • 我搭建了一套企业级私有Git服务,抗住了每天上万次攻击!

    作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了...

    冰河
  • 01 . GitLab简介及环境部署

    GitHub如果使用私有仓库,是需要付费的,GitLab可以在上面搭建私人的免费仓库。

    常见_youmen
  • Git与GitLab

    Git四大域:工作目录、暂存区、仓库、远程仓库。 git对文件的操作都是在四大域上进行的,文件可以在四大域内与四大域间进行各种操作。(有一个例外,进行“git...

    仙人技术
  • 云主机搭建Git服务器

    版本控制是一个项目不可或缺的一部分,可以帮助开发者追踪文件的变更、分支管理、版本回退、版本发布等。所以建议当开始一个项目或者有想法进行开发时,都尽量考虑用上版本...

    Jeffery
  • Git之远程仓库的使用

    兮动人
  • linux服务器搭建之路2-安装git最新版本

    错误代码:`Permission denied (publickey). fatal: 无法读取远程仓库。

    锦小年
  • 快速学习Git-远程仓库

    现在我们已经在本地创建了一个Git仓库,又想让其他人来协作开发,此时就可以把本地仓库同步到远程仓库,同时还增加了本地仓库的一个备份。

    cwl_java
  • Github被微软收购,这里整理了16个替代品

    微软斥资75亿美元收购以后,鉴于微软和开源竞争的历史,很多开发者都感到惊恐。毕竟,互联网上最大的一块可以自由的净土被微软染指,宝宝不开森。如果你真的担心微软会对...

    Fundebug
  • Hexo之我的个人博客改用自己服务器搭建

    最近小明介绍完自己用hexo+git搭建个人博客,大家好像更关心的是域名mynamecoder.com,不是应该关注技术嘛,让小明哭笑不得?,今天继续给大家讲一...

    程序员小明
  • 搭建Git服务器

    在讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改。

    php007
  • Centos 7 安装 Git

    可以使用命令将文件直接上传到服务器,也可以使用 WinSCP,这里我就使用 WinSCP 了,因为他是傻瓜式的,输入服务器的公网 IP、用户名以及密码后直接登录...

    Demo_Null
  • 手把手教你搭建集中式版本控制系统SVN服务器

    我们前段日子学过了分布式版本控制系统git,相信大家都领略到了它的强大,今天我们来说说集中式版本控制系统svn,跟分布式版本控制系统不同的是,集中式版本控制系统...

    前端皮皮
  • git 入门教程之 git 私服搭建教程 原

    前几节我们的远程仓库使用的是 github 网站,托管项目大多是公开的,如果不想让任何人都能看到就需要收费,而且 github 网站毕竟在国外,访问速度太慢,基...

    雪之梦技术驿站

扫码关注云+社区

领取腾讯云代金券

http://www.vxiaotou.com