git 服务器搭建,在自己服务器上搭建私有仓库

简介:

创建一个简单的私人Git版本控制服务器,首先得有个服务器(屁话)。这种方式适合人比较少的情况,管理不需要很复杂,只要增加几个账号就能搞定。

如下面的情况,有一个服务器,两个客户端。

服务器:Debian7.5 (192.168.10.14)  户:git (git-shell)  库:sample.git  址:git@192.168.10.14:/home/git/sample.git 客户端:Mac mymac.pubmac git公钥) win7 mywin.pubwin7 git公钥)

简单步骤:

  • 1、安装git服务,并创建git账号
  • 2、创建示例仓库sample
  • 3、导入客户端公钥
  • 4、客户端连接并提交内容
  • 5、修改Git权限,只使用git-shell命令
    -- OK --

一、安装git

直接通过apt-get安装git。使用这个方式比较简单,当然也可以使用git源代码自己编译最新版本。

# apt-get update
# apt-get install git -y

1.1 创建git用户

创建git账户并登录,直接指定用户目录到/home/git

# useradd git -d /home/git -m -s /bin/bash
# su git

添加用户 user add
-d:指定用户目录
-m:如果目录不存在则创建
-s:可以指定用户使用的命令

二、创建sample库

创建库很简单,注意使用--bare参数。作为代码仓库服务器并不会在上面修改东西,所以只要有相关提交日子就可以。

$ cd ~
$ git init --bare sample.git

三、设置SSH Key

收集客户端公钥,复制到服务器上。 客户端当前账号RSADSA的数字签名文件id_rsa.pub 在.ssh用户目录中。通常情况下windows在 %userprofile%\.ssh 目录中,Mac在~/.ssh目录中。

mac上可以直接使用下面命令复制粘贴板上,或使用ssh上传

$ pbcopy < ~/.ssh/id_rsa.pub

win7上可以打开Git GUI界面有个帮助->show SSH Key菜单,如果没创建过可以点击创建SSH的签名文件,并复制公钥保存到服务器上。如果使用第三方的SSHKey服务,那可能实际位置会有些差异。

生成本地用户的签名文件,并把客户端上公钥导入到服务器上。如果有多个的话可以放在一个目录中,方便导入。如果是团队人比较多这种方式可能就不太适合了。

如把客户端的key文件mymac.pubmywin.pub导入。

$ ssh-keygen -t rsa -b 4096 $ cat mymac.pub >> ~/.ssh/authorized_keys $ cat mywin.pub >> ~/.ssh/authorized_keys

3.1 客户端获取sample库,并增加文件上传到服务器

在Mac客户端获取。

$ git clone git@192.168.10.14:/home/git/sample.git Cloning into 'sample'... warning: You appear to have cloned an empty repository. Checking connectivity... done.

获取成功OK,增加一个文件,并提交到服务器上

$ cd sample
$ cat >> readme.md first file. ^c $ git add . $ git commit -m "first commit" $ git push

3.2 服务器上查看状态

$ git log
commit 8b070256af351b43a74753f0b05969fcfe9c7310
Author: moguf <moguf_notify@163.com> Date: Sun Apr 3 20:49:17 2016 +0800 first commit

3.3 在Win客户端获取

windows上可以直接使用gitTortoiseGit获取。

git@192.168.10.14:/home/git/sample.git

新建一个文件并提交到服务器上。在服务器上通过git log就能看到第二提交的内容。mac客户机上git pull能看到刚才新加的文件。

这样Git服务器仓库功能基本完成。

四、安全问题

为安全考虑Git账号只允许使用git-shell。在passwd文件中找到git用户,把/bin/bash直接修改成/usr/bin/git-shell 登录root账号,并修改git的用户权限。

$ su
# vim /etc/passwd

这样git用户只能git-shell命令不能登录了。

使用 su git 命令就会出现下面提示,git用户就无法登录到shell,这样就OK了。

# su git
fatal: Interactive git shell is not enabled. hint: ~/git-shell-commands should exist and have read and execute access.

五、数据仓库迁移

上面的情况是空仓库,如果原来已经有在使用的仓库,想迁移到新仓库。

mac 下切换

先看一下remote的名字。

$ git remote
origin

一般可以看到origin,这个就是原来仓库名称。使用git remote set_url命令更换地址,如新地址是git@192.168.10.14:/home/git/sample.git

$ git pull
$ git remote set-url origin git@192.168.10.14:/home/git/sample.git $ git push
  • 获取原来最新代码
  • 切换到新地址
  • 提交当前库内容

win7下切换

如果有装‘TortoiseGit’。直接右击当前目录,进入Settings把Remote中地址替换掉。没装就用上Git自带的,使用上面命令替换。

提示:这种方式在空仓库下迁移比较方便,如果新地址有数据那就比较麻烦了。

六、其它相关:从源码安装Git

系统提供的包比较文档,当然可能会发现有些不得不安装最新版本才能解决。反正会有各种原有会须要升级git。

6.1 安装依赖包

$ sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev asciidoc xmlto docbook2x

6.2 下载编译

一般的编译安装方法,makemake install

$ wget https://github.com/git/git/archive/v2.9.1.tar.gz
$ tar fvxz v2.9.1.tar.gz $ cd git-2.9.1 $ make prefix=/usr all doc info $ su # make prefix=/usr install install-doc install-html install-info

安装完成后验证一下git版本

# git --version
git version 2.9.1

上面的方法是全局安装的,如果须要更细节的控制安装可以参考git提供的安装帮助原始文档

提示: 最新版本获取在github上 https://github.com/git/git/releases

6.3 磁盘爆了!

上面的依赖包尺寸有些大。虚拟机本来就是用来测试的,分配的磁盘空间比较小。发生了磁盘空间不足问题,100%占用-_-!!有些杯具,这是意外中的意外。可以使用df -hl命令查看剩余空间。

root@sunroom:/home/abc# df -hl Filesystem Size Used Avail Use% Mounted on rootfs 2.5G 2.5G 0 100% / udev 10M 0 10M 0% /dev tmpfs 76M 224K 76M 1% /run /dev/disk/by-uuid/371b6c92-bdc9-417d-b37f-fae99e6ecce1 2.5G 2.5G 0 100% / tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 213M 0 213M 0% /run/shm /dev/sda6 5.2G 139M 4.8G 3% /home tmpfs 213M 0 213M 0% /tmp

简单清理 删除缓存文件

清理旧版本的软件缓存

# apt-get autoclean

清理所有软件缓存:

# apt-get clean

七、相关问题

提示:
可能会出现 bash: vim: command not found 。安装个vim 或使用vi命令都可以。
apt-get install vim -y

更多相关git的问题可以直接到官网查找。有中文版本帮助,内容比较详实。



本文转自莫水千流博客园博客,原文链接:http://www.cnblogs.com/zhoug2020/p/5789041.html,如需转载请自行联系原作者

相关文章
|
1月前
|
弹性计算 Ubuntu Linux
幻兽帕鲁/Palworld服务器怎么搭建?2024年幻兽帕鲁/Palworld服务器搭建攻略大全
在帕鲁的世界,你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活,为了实现自动化,将手工作业交给帕鲁就尤为重要。建造工厂,并安排帕鲁在其中工作吧。只要有足够的食物,帕鲁就可以不断地工作,直到它们生命的尽头。很多玩家想要搭建幻兽帕鲁服务器但是很多玩家不清楚幻兽帕鲁服务器怎么创建,现在就为大家带来幻兽帕鲁/Palworld服务器怎么搭建?2024年幻兽帕鲁/Palworld服务器搭建攻略大全。就让我们一起进入《幻兽帕鲁》的世界,与好友们组队,开启属于我们自己的冒险吧!在这个充满未知与挑战的游戏世界里,让我们一起创造更多美好的回忆!
|
25天前
|
云安全 弹性计算 安全
Steam游戏服务器搭建好了,连接服务器错误,一直连不上服务器是什么问题,该怎么办?
Steam作为全球最大的数字游戏分发平台,拥有庞大的用户群体和丰富的游戏资源。然而,就像任何网络服务一样,Steam也偶尔会出现连接至服务器错误或连接问题,这可能导致用户无法顺利下载、更新游戏或进行在线游玩。本文将详细探讨这些连接问题的可能原因,并提供一系列有效的应对策略。
|
1月前
|
JavaScript 持续交付 Go
如何实现Git Push之后自动部署到服务器?
如何实现Git Push之后自动部署到服务器?
36 0
|
1月前
|
缓存 网络安全 开发工具
Git服务器报错:host key for (ip地址) has changed and you have requested strict checking
Git服务器报错:host key for (ip地址) has changed and you have requested strict checking
220 0
|
1月前
|
开发工具 git
git怎么设置http代理服务器
git怎么设置http代理服务器
38 12
|
1月前
|
弹性计算 Ubuntu Linux
幻兽帕鲁Palworld服务器搭建教程,2024年阿里云部署帕鲁服务器保姆级方法
对于热爱《幻兽帕鲁》的玩家们来说,能够拥有属于自己的游戏服务器,无疑是提升了游戏的自由度和乐趣。那么,怎样才能部署幻兽帕鲁服务器呢?接下来,就让我们一起走进这个简单易懂、保姆级的教程吧!
130 0
|
1月前
|
弹性计算 固态存储 Linux
阿里云怎样搭建幻兽帕鲁联机服务器,幻兽帕鲁服务器搭建全流程分享
幻兽帕鲁作为近期大热的游戏,吸引了无数玩家的目光。很多小伙伴都希望能够搭建属于自己的服务器,与朋友们一起畅快游戏。那么,该如何快速搭建幻兽帕鲁服务器呢?下面就来为大家详细介绍一下。
94 0
|
1月前
|
弹性计算
2024年幻兽帕鲁/Palworld游戏专用服务器搭建步骤(阿里云一键搭建帕鲁服务器)
《幻兽帕鲁》这款游戏自推出以来,便以其独特的联机对战模式赢得了玩家们的广泛喜爱。然而,联机过程中常常遇到的服务器卡顿、延迟高等问题,让许多玩家倍感困扰。为了解决这个问题,阿里云为《幻兽帕鲁》的玩家们提供了一种便捷且高效的解决方案:通过阿里云一键搭建云服务器,轻松优化游戏体验。
|
1月前
|
弹性计算 安全 数据安全/隐私保护
幻兽帕鲁服务器怎么搭建:2024年阿里云帕鲁联机服务器搭建详细教程
想要搭建一个稳定、流畅的服务器,与全球的玩家们一同探索帕鲁世界吗?下面,就为大家带来一份详细的服务器搭建教程!
49 3
|
1月前
|
弹性计算 Linux 数据安全/隐私保护
最强32人幻兽帕鲁服务器搭建教程by阿里云服务器
最强32人幻兽帕鲁服务器搭建教程by阿里云服务器,幻兽帕鲁Palworld多人游戏专用服务器一键部署教程,阿里云推出新手0基础一键部署幻兽帕鲁服务器教程,傻瓜式一键部署,3分钟即可成功创建一台Palworld专属服务器,成本仅需26元,阿里云百科分享2024年新版基于阿里云搭建幻兽帕鲁服务器教程
最强32人幻兽帕鲁服务器搭建教程by阿里云服务器