在Linux下搭建Git服务器的方法详解
前言
GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。
我打算自己搭建git服务器。虽然目前已经有很不错的git工具,如github,coding.net等,但是为了安全,减少限制和开销,还是放在自己的服务器为好。下面给出安装配置的过程,有问题欢迎讨论和交流,我会及时回复的。
第一步
安装git:可以通过命令的方式快速安装,不同的linux的安装方法可能不一样,我的是采用的yum方法。ubuntu可以用apt-get
命令。
sudo yum install git
第二步
添加git用户,因为git服务器只限定来做项目代码交流的,专门开出一个用户来访问git服务器,比较好管理和控制。
sudo adduser git
第三步
设置git用户的登陆密码。因为git提供ssh协议登陆功能,网上有的采用了存储客户端rsa_pub密码的方式来免密登陆,但是我按照这个方法存储了公钥文件,修改了ssh的配置,改了文件的权限,最后实际测试都不可以,还是在git访问时提示输入密码。所以干脆就自己设置一个密码吧,也安全一些。工作量和需要用户把公钥文件发给管理员是一样。
passwd git
第四步
设置git登陆用户的权限。为了使git远程登陆时,只允许使用git-shell命令,需要修改/etc/passwd
文件找到git:x:500:500:,,,:/home/git:/bin/bash
这一行,一般是在最后一行,改为git:x:500:500:,,,:/home/git:/usr/bin/git-shell
注意数字根据你的电脑的实际情况,可能是不一样的数字。经过以上简单的步骤,已经搭建好了git的环境了。
下面是git项目的创建了第四步:创建仓库。可以根据已有项目文件目录来创建,方法是先进入到项目根目录。
然后输入以下命令
sudo git init
第五步
修改生成的.git文件的属主为git用户
sudo chown -R git:git .git
第六步
以上只是创建了一个空仓库,需要把项目文件加入进去。以下命令是git常用操作命令,属于git的使用方法了。有兴趣的可以自己去学习相关命令
git add .
git commit -a -m "init a git project "
经过以上步骤,服务器端的git项目仓库已经建立好。其他人可以clone下git服务器的项目文件到本地了。但是需要首先在自己的客户端安装git-shell工具。对于已经安装了github客户端的朋友,可以直接用它的Git Shell终端下搭建git是很容易。
git clone <a target=_blank href="mailto:git@host-IP:/your-git-repository">git@host-IP:/your-git-repository</a>
总结
其实搭建Git服务器非常简单,通常10分钟即可完成。以上就是这篇文章的全部内容,希望本文的内容对啊大家的学习或者工作能带来一定的帮助。
相关推荐
-
在DigitalOcean的服务器上部署flaskblog应用
在DigitalOcean上部署了flaskblog,项目虽小,部署中也学到了很多东西. 操作系统选择的是Ubuntu14.04,原因就是平时自己主要使用这个版本,顺手而已,所以你自己可以根据需要选择合适的linux版本. 部署方案: Virtualenv+Gunicorn+Nginx+Supervisor 从这里下载项目的代码flaskblog, 工程中带有简单的配置文件参考. 可以先访问flaskblog看一下. 注意 本文中使用Ubuntu14.04 64位主机, 创建一个名为xin的用户
-
在Linux下搭建Git服务器步骤
环境: 服务器 CentOS6.6 + git(version 1.7.1) 客户端 Windows10 + git(version 2.8.4.windows.1) ① 安装 Git Linux 做为服务器端系统,Windows 作为客户端系统,分别安装 Git 服务器端: #yum install -y git 安装完后,查看 Git 版本 [root@localhost ~]# git --version git version 1.7.1 客户端: 下载 Git for Windows
-
Git 删除远程服务器文件同时保留本地文件实例详解
Git 如何删除远程服务器文件同时保留本地文件 在上传工程到git上时,有时候会把本地的一些eclipse配置文件传到服务器上,这时你先删除本地,再同步服务器,显然是不合理的.git提供了一个好的解决方法,可以直接删除服务器文件,同时不影响本地文件,命令如下 git rm --cached filename/-r directory git commit "xxxx" git push 1.删除服务器文件,本地保留 git rm --cached useless.log git com
-
使用git代替FTP部署代码到服务器的例子
本地开发完成后,通常会在服务器上部署,有人会使用ftp,有人会使用scp, ftp和scp的时候为了方便我们通过还要tar或者zip一下, 这些做法也很不错,但是它有一些问题 1.全部更新,不管某些文件是否修改,都要重新传一下服务器,浪费时间与流量 2.多台服务器的重复上传 3.代码更新后,后续的一些操作不够自动化 上面的问题可以通过ssh直接远程执行命令来解决,但是需要写一些shell脚本, 有没有更简单更高效的方法呢?有,那就是使用版本版本管理工具的hook! 这里我说是版本管理工具而不是g
-
阿里云Linux-CentOS系统下-搭建Git服务器详解
阿里云Linux-CentOS系统下-搭建Git服务器 步骤总结: 1. 安装git 首先确认服务器是否安装Git 在Xshell中输入命令:$ rpm -qa git 结果如下表示已经安装: 如果未安装就安装git 在Xshell中输入:$ yum install git 2. 创建一个git用户,用来运行git服务: 在Xshell中输入:$ sudo adduser git 此时在阿里云服务器的根目录:/home文件夹下新增一个文件夹git 按这个层级建立文件用于存放客户端用户的公钥:/
-
Git 教程之服务器搭建详解
Git 服务器搭建 上一章节中我们远程仓库使用了 Github,Github 公开的项目是免费的,但是如果你不想让其他人看到你的项目就需要收费. 这时我们就需要自己搭建一台Git服务器作为私有仓库使用. 接下来我们将以 Centos 为例搭建 Git 服务器. 1.安装Git $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel $ yum install git 接下来我们
-
详解在CentOS下搭建自己的Git服务器
首先需要装好CentOS系统,作为测试,你可以选择装在虚拟机上,这样比较方便.这步默认你会,就不讲了. 有了CentOS,那么如何搭建Git服务器呢? 1.首先需要安装Git,可以使用yum源在线安装: [root@localhost Desktop]# yum install -y git 2.创建一个git用户,用来运行git服务 # adduser git 3.初始化git仓库:这里我们选择/data/git/learngit.git来作为我们的git仓库 [root@localhost
-
详解在Linux下搭建Git服务器
众所周知,版本系统在开发环境中是必不可少的,但是我们可以把代码免费的托管到GitHub上,如果我们不原意公开项目的源代码,公司又不想付费使用,那么我们可以自己搭建一台Git服务器,可以用Gitosis来管理公钥,还是比较方便的. 搭建环境: 服务器 CentOS6.6 + git(version 1.8.3.1) 客户端 Windows10 + git(version 2.11.1.windows.1) 1. 安装Git相关软件 Linux是服务器端系统,Windows作为客户端系统,分别安装G
-
一键备份gitolite服务器的Shell脚本
运行一次就能够把gitolite服务器上的仓库备份到本地. 第一次运行会创建远程仓库的本地镜像, 以后每次运行会把本地镜像更新. 本程序只支持 ssh方式 其他的git server貌似不会在 ssh git@xxx 的时候返回repo列表, 所以只能手动备份. #!/bin/sh server=serv_addr root_dir=`pwd` echo "whill back in dir: ${root_dir}" ssh "git@${server}" | a
-
在Linux下搭建Git服务器的方法详解
前言 GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用. 我打算自己搭建git服务器.虽然目前已经有很不错的git工具,如github,coding.net等,但是为了安全,减少限制和开销,还是放在自己的服务器为好.下面给出安装配置的过程,有问题欢迎讨论和交流,我会及时回复的. 第一步 安装git:可以通过命令的方式快速安装,不同的linux的安装方法可能不
-
Linux下搭建SFTP服务器的命令详解
1.创建用户并设置密码 useradd -s /bin/false sftpuser passwd sftpuser # 若需要多个sftp用户 新建sftp的用户组: groupadd sftp useradd -g sftp -m sftpuser1 useradd -g sftp -m sftpuser2 passwd sftpuser1 passwd sftpuser2 usermod -g sftp sftpuser 2.配置ssh和权限 首先关闭SElinux vim /etc/sy
-
在linux下升级软件包版本等方法详解
Linux环境下,要想查看某个软件(package)是否安装. rpm包方式安装的,使用 rpm -qa | grep "软件或者包的名字". yum方式安装的, yum list installed | grep "软件或者包的名字". 升级软件包版本. 我们经常会遇到依赖其他版本包的情况(一般是更新的版本),这时候我们需要升级包. 1.卸载后安装新的包. 首先要根据文首提到的查看软件包是否安装的方式查看你是否安装了这个软件,若没有安装,找到路径后使用wget命令
-
CentOS下搭建SVN服务器的步骤详解
本文实例讲述了CentOS下搭建SVN服务器的步骤.分享给大家供大家参考,具体如下: 1.安装svn yum install -y subversion 2.验证安装是否成功 svnserve --version 3.创建svn版本库 mkdir svn svnadmin create svn/repo 注:这里的repo是版本库名称 4.配置svn 创建版本库后,在这个版本库的conf目录下会生成3个配置文件: [root@singledb conf]# pwd /root/svn/repo/
-
LINUX下Oracle数据库用户创建方法详解
本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户) 2)首先要打开监听器命令如下:lsnrctl start,然后sqlplus /nolog ,然后conn /as sysdba,然后startup(这一部分命令是用来打开oracle数据库) 3)查看我们常规将用户表空间放置的位置:执行如下sql: SQL> select
-
Linux下core文件的使用方法详解
前言 有时候程序会异常退出而不带任何日志,此时就可以使用 code 文件进行分析,它会记录程序运行的内存,寄存器,堆栈指针等信息 什么是core文件 通常在 Linux 下遇到程序异常退出或者中止,我们都会使用 core 文件进行分析,其中包含了程序运行时的内存,寄存器,堆栈指针等信息,格式为 ELF ,可以理解是程序工作当前状态转储成一个文件,通过工具分析这个文件,我们可以定位到程序异常退出或者终止时相应的堆栈调用等信息,为解决问题提供帮助. 使用core文件调试 生成方法 查看当前 core
-
解决linux下大量TIME WAIT的方法详解
问题描述:在Linux系统中高并发的Squid服务器,TCP TIME_WAIT套接字数量经常达到两.三万,服务器很容易被拖死.解决方法:通过修改Linux内核参数,可以减少linux服务器的IME_WAIT套接字数量.vi /etc/sysctl.conf增加以下几行: 复制代码 代码如下: net.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_keepalive_time = 1200net.ipv4.tcp_syncookies = 1net.ipv4.tcp
-
Linux下强制杀死进程的方法详解
常规篇: 首先,用ps查看进程,方法如下: $ ps -ef -- smx 1822 1 0 11:38 ? 00:00:49 gnome-terminal smx 1823 1822 0 11:38 ? 00:00:00 gnome-pty-helper smx 1824 1822 0 11:38 pts/0 00:00:02 bash smx 1827 1 4 11:38 ? 00:26:28 /usr/lib/firefox-3.6.18/firefox-bin smx 1857 1822
随机推荐
- AngularJS定时器的使用与移除操作方法【interval与timeout】
- Python自定义函数的创建、调用和函数的参数详解
- Angularjs CURD 详解及实例代码
- Android raw 目录下视频的缩略图的获取
- js判断浏览器类型,版本的代码(附多个实例代码)
- JS实现完美include加载功能代码
- Codeigniter+PHPExcel实现导出数据到Excel文件
- PHP解耦的三重境界(浅谈服务容器)
- php弹出对话框实现重定向代码
- js中获取键盘事件的简单实现方法
- 基于Node.js模板引擎教程-jade速学与实战1
- HQL查询语言的使用介绍
- JavaScript运动框架 多物体任意值运动(三)
- php 页面执行时间计算代码
- Java自动化测试中多数据源的切换(实例讲解)
- 打印菱形以及斐波纳契数列的几种解法介绍
- 全新打包工具parcel零配置vue开发脚手架
- vue之浏览器存储方法封装实例
- Spring Cloud学习教程之Zuul统一异常处理与回退
- 详解如何在Ubuntu 16.04上增加Swap分区