天空游戏网 手游攻略 手游攻略 在个人服务器上构建 git 服务并创建自己的私有仓库

在个人服务器上构建 git 服务并创建自己的私有仓库

时间:2022-07-26 08:09:14 来源:网络整理 浏览:13

前言

在个人 VPS 上安装 git 服务。本文所有内容均在阿里云ECS系统14.04下进行。

背景

公司总部的开发项目不能放在开源仓库,私有仓库需要一定的成本。崇尚自由的Coder怎么会被这样囚禁?果断想把源码放到公司的服务器上,加个版本管理工具,最好是Git!拿出来的时候,我会讲解如何在服务器上搭建一个Git服务。最后,如果功能足够丰富,加上后端页面,就可以和上面一样了!听起来很高大上,虽然学到的东西很简单。

配置服务器

哪个信息最清楚最全面的开发者原版,先参考po上的文章:《Git官方文档-服务器上的Git-配置服务器》其实已经足够全面了,而对于小白来说,还是不太明白,这里我补充一下建立。 PS:以下约定成立

终端A是登录远程服务器的git-bash或其他终端终端B是本地运行的git-bash或其他终端

在linux服务器上安装配置git工具

安装 git 工具:

# 更新安装源
$ sudo apt-get update
# 安装git工具
$ sudo apt-get install git

配置 git:

git config --global user.name "Your Name"
git config --global user.email "name@mailname.com"

查看git配置信息:

git config --list

为 linux 服务器创建一个新用户并添加 SSH 信任

首先为您的 linux 服务器创建一个 git 用户。我的linux服务器是公司租用的测试服务器。首先以root超级用户登录,然后进行如下操作。 PS:代码中的用户提示$可以看成#号。既然是root超级用户,之所以不写成#是因为会做成评论终端A

$ adduser -d /home/git -m git  #没错,用户名就是git,若不存在用户目录,则会创建
#输入设置git用户的密码,此步骤在此不展示,建议密码设置复杂点,毕竟是放在网上的
$ chmod 755 /home/git
$ su git
$ mkdir .ssh && chmod 700 .ssh
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

PS1:一旦我们创建了一个新用户,我们也会在/home目录下手动创建一个与用户名对应的新文件夹。完成上述操作后,我们将手动新建一个/home/git文件夹个人服务器,该文件夹称为git用户。其他普通用户的主目录相同。 PS2:超级用户root的主目录不在/home/下,而是/root目录下。假设我们这里都完善了 SSH 信任,或者看过我的《一键部署后端代码到服务器》,会创建本地的 SSH 密钥和私钥文件,那么继续下面,打开一个新的 git-bash终端B找到我们的.pub私钥文件目录,然后远程复制到服务器:终端B

$ cd ~/.ssh/
$ ls ./id_rsa.pub
$ scp ./id_rsa.pub root@114.xxx.xxx.xxx:/home/git

回到终端A继续操作:终端A

$ su git  #切换到git用户
$ cd /home/git  #进入git用户的家目录
$ cat ./id_rsa.pub >> .ssh/authorized_keys  #将id_rsa.pub文件内容追加到authorized_keys中

退出SSH登录,再次以git用户登录,不再需要输入git用户密码

测试是否可以免密码登录:

ssh -v git@SERVER

严重警告:1.git用户根目录的文件夹权限必须是7552.git用户根目录下.ssh文件夹的权限必须是7003. 必须保证git用户根目录下.ssh文件夹内文件的权限为600,为新创建的git用户搭建git仓库

以git用户通过SSH远程登录服务器:

$ ssh git@114.xxx.xxx.xxx
```linux

个人服务器_自救器服务年限_窗口服务触摸液晶评价器

借助带 `--bare` 选项的 `git init` 命令来为开发者新建一个仓库,该命令在初始化仓库时不会创建工作目录: ```sh $ cd /home/git #新仓库要建立在哪个文件夹自己选,方便组织管理就行,我就直接放在git用户的家目录下 $ mkdir testProject.git #创建一个新仓库目录 $ cd testProject.git #进入新仓库目录 $ git init --bare #初始化该新仓库 Initialized empty Git repository in /home/git/testProject.git/

至此,自己服务器上的git仓库已经搭建完成。仓库地址是:git@114.xxx.xxx.xxx:/home/git/.git,看看,哇,和物品上的地址格式一模一样!如::/..io.git,我的内心是真的激动!现在自己服务器的/home/git就相当于一个大大小小的仓库,同理可以无限添加新的仓库,保存新的项目代码。

在操作服务器上关联git仓库

经过前两步,就可以在服务器上关联和操作git仓库,上传并保存自己的代码:

$ cd testProject  #在本地先进入自己的工程代码根目录
$ git remote add tsOrigin git@114.xxx.xxx.xxx:/home/git/testProject.git  #添加远程服务器的仓库并取昵称为tsOrigin,区别于github上的origin仓库
$ git push tsOrigin master  #向远程仓库推送代码

添加多人协作

这种情况一定存在,而且很常见。公司的项目代码通常由多人维护;就算不是一个人维护,上传到测试服务器的最终目的还是为了能在多台笔记本上下载上传代码,所以需要添加多人协作!虽然也很简单,只需要将需要协调的PC上的SSH私钥追加到git用户家目录下的授权密钥文件/home/git/.ssh/中,使用cat即可命令。

限制开发者远程登录linux服务器

需要注意的是,目前所有(授权的)开发者用户都可以作为系统用户git登录服务器,从而得到一个正常的shell。使用名为 git-shell 的受限 shell 工具,您可以轻松地将用户 git 活动限制在与 Git 相关的范围内。这个工具随 Git 包一起提供。如果将git-shell设置为用户git的登录shell(),那么用户git就无法获得本服务器正常的shell访问权限。要使用 git-shell,请将 bash 或 csh 替换为系统用户的登录 shell。为了做到以上几点,首先你必须确保 git-shell 已经存在于 /etc/ 文件中,并将 git-shell 的位置添加到 /etc/ 目录中

$ cat /etc/shells   # see if `git-shell` is already in there.  If not...
$ which git-shell   # make sure git-shell is installed on your system.
$ sudo vim /etc/shells  # and add the path to git-shell from last command

您可以使用 chsh 更改任何系统用户的 shell:

$ sudo chsh git  # and enter the path to git-shell, usually: /usr/bin/git-shell

这样用户git只能通过SSH连接对Git仓库进行push和pull操作,而无法登录机器获取正常的shell。如果尝试登录,您会发现尝试被拒绝,如下所示:

$ ssh git@114.xxx.xxx.xxx
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to gitserver closed.

福利致力于自定义映射远程服务器IP地址的域名

每次远程登录都要做这个@114.xxx.xxx.xxx很麻烦? !没有域名,IP地址复杂,是不是越来越难受? !一起来配置本地服务器的域名吧!编辑/c////etc目录下的hosts文件,用下面一行打开:

114.xxx.xxx.xxx (空格) ts.aliyun.com (回车换行)

保存并退出。一般来说个人服务器,它不会立即生效。有以下几种解决方案。总之,我都用过-.-

DOS界面

网络配置,添加hosts文件

控制面板->管理工具->服务->DNS更改为自动

那么就可以这样完成:

ssh root@ts.aliyun.com

关于我

标题:在个人服务器上构建 git 服务并创建自己的私有仓库
链接:https://www.skyyx.com/news/gl/417.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
魔兽世界怀旧服锻造分支怎么选择60年代分支选择推荐

在全新的魔兽世界怀旧服游戏中,有着很多的玩家都选择锻造这个专业技能,但是对于锻造分支应该怎么选择?还有对

2022-07-26
冒险岛小衣来特任务攻略,冒险岛阿里安特文化的任务这个很多人还不知道

冒险岛阿里安特任务攻略,冒险岛阿里安特任务这个很多人还不知道,现在让我们一起来看看吧!2、二、《冒险岛》里

2022-07-26
在系统宝石学中,宝石分为两大类:有机宝石和无机宝石

6、有机宝石需注意保养。了解了宝石的分类和特性以后,就可以根据它们各自不同的特点进行日常养护。所以说钻

2022-07-26
CFS21赛季枪王排位奖励有哪些?枪王奖励一览

CFS21赛季枪王排位快开始了,在新赛季的枪王排位中地图会进行改动,并且增加了新的段位,那么CFS21枪王排位奖励有

2022-07-26