git服务器的搭建

本文介绍如何安装SSH和Git,详细说明了通过SSH协议进行无密码登录的配置步骤,以及如何在Ubuntu Server上搭建Git远程仓库,并在本地创建仓库与远程仓库进行连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:安装ssh和git,安装方法

ssh: SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.
方法
安装ssh

$ sudo apt-get install openssh-server openssh-client

安装git

$ sudo apt-get install git

简单介绍一下git

git 是一个版本控制系统。
官方的解释是:版本控制(Revision control)是一种软件工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档
案都得到更新。
按我的白话文解释就是:一群志同道合的人身处祖国各地,希望来合作开发一个项目,假设这个项目是使用 c 语言写的(当然用任何语言都可以的)。那么大家怎么合作呢?用信件?效率太低。用邮件,不好实现多人沟通。用 googlegroup 吧,可开发阶段中的源代码没法科学管理。用自建的网站吧,需要人力物力财力来支撑阿。
这个时候版本控制系统就派上用场了。它可以让一个团队里的不同的人在不同地点、不同时间开发和改进同一个项目,并且在大部分的时间里,版本控制系统会聪明的帮你把不同的人在不同地点不同时间修改的代码融合到项目中去。
建议你选用的版本控制系统包括:
rcs,cvs,svn,git,Mercurial,Bazzar 等等。
当然 git,Mercurial 和 Bazzar 都是属于分布式版本控制系统。

2.搭建远程服务器

远程服务器与本地服务器之间在功能上没有区别,本地服务器在逻辑上本地文件和服务器文件是分开的,但是物理上其实是相同的,换句话说就是当我在本地不小心把这个文件删除后,远程其实也不在了,所以这里远程服务器就有优势,远程服务器中的你是没有权限删除了,除非用命令行,所以就不可能不小心了

2.1配置git用户

在Ubuntu Server上新增一个git用户,用于为安装gitosis做准备

$ sudo adduser --system --shell /bin/bash --group git  
// 创建用户 git,并设置用户的 shell 为可登录的 shell,如 /bin/bash,同时添加同名的用户组。
  $ sudo adduser git ssh  // 有的系统,只允许特定的用户组(如 ssh 用户组)的用户才可以通过 SSH 协议登录,这就需要将新建的 git 用户添加到 ssh 用户组中。
  $ sudo passwd git  // 为 git 用户设置口令。
  $ ssh-copy-id git@server  // 管理员在客户端使用下面的命令,建立无口令登录。 
   说明一下,这里的service是说你的服务器ip,也就搭建服务器的电脑的ip

2.2 创建git Server的仓库存储

 $ sudo mkdir /home/git/repositories 
 // 创建git仓库存储目录
  $ sudo mkdir /home/git/repositories/项目 -p   
   //迭代创建一个项目文件夹
   $ cd /home/git/repositories/项目     
   //移动到项目文件夹为初始化准备
   $ git --bare init    
  //远程初始化,不要使用:git init
  $ sudo chown git:git /home/git/repositories 
   // 设置只允许git用户才能访问此目录
  $ sudo chmod 755 /home/git/repositories  
  // 设置目录访问的可读写或执行的权限

已经完成搭建

3.搭建本地仓库

$    cd /项目路径        //移动到项目文件夹为本地初始化准备
$   git init          //初始化本地仓库

4.将id发给远程服务器

 $ ssh-copy-id-i .ssh/id_rsa.pub git@service

5.通知远程服务器

  $ git remote add originssh://git@service/home//git/repositories/项目/.git

6.提交到本地

$   git  add . //为当前项目制作快照,暂时存在临时存储区域
$   git  commit -am "注释" //永久化到仓库,并写注释

7.提交到服务器

$ git push origin master

各种命令

登陆 $ ssh git@service
删除 $ rm -rf 文件路径
截图工具 $ gnome - screenshot -a

push 不上 相关链接

http://www.cnblogs.com/cosiray/archive/2012/06/01/2530967.html

http://www.cnblogs.com/candle806/p/4064610.html

<think>好的,用户想要了解如何搭建自己的Git服务器。我需要根据提供的引用资料整理出一个清晰的步骤指南。首先,要确保回答结构清晰,分步骤说明,并且正确应用引用标记。 首先,搭建Git服务器通常需要Linux系统,比如Ubuntu或CentOS。第一步应该是安装必要的软件,比如Git和SSH。根据引用[1]和引用[3],用户需要安装Git并通过SSH进行连接。可能还需要创建git用户,并设置权限,这能提高安全性。 接下来是创建Git仓库的步骤。引用[1]和引用[3]都提到了在/srv目录下创建仓库,比如sample.git或demo.git,并使用git init --bare初始化裸仓库。这里需要详细说明命令和路径设置,确保用户能正确执行。 然后是配置SSH访问,这部分需要指导用户生成SSH密钥,并将公钥添加到服务器git用户中。引用[3]中的示例用了git clone命令,说明克隆时使用的是SSH协议,所以配置好SSH是关键。 另外,引用[2]提到了GitLab的安装和开机自启动。如果用户需要更复杂的功能,比如Web界面或团队协作工具,安装GitLab是一个好的选择。这里需要分情况讨论,如果用户需要简单服务,就使用基本的Git+SSH;如果需要更多功能,则建议GitLab。 测试部分也很重要,用户克隆仓库是否能成功,比如引用[3]中的示例命令。需要提醒用户替换IP地址,并检查防火墙设置,确保SSH端口开放。 最后,生成相关问题时要覆盖扩展内容,比如权限管理、GitLab配置、迁移仓库等,这样用户可以有进一步的学习方向。 需要注意所有行内公式用$...$,但在这个问题中可能用不到数学公式,但需要确保其他格式正确,比如代码块用三个反引号,引用标记正确放置。回答要使用中文,结构分步骤,代码示例明确,并自然添加引用标识。</think>### 如何搭建自己的Git服务器? #### 步骤 1:准备Linux服务器 - 选择Ubuntu/CentOS等Linux系统,确保已安装SSH服务 - 更新系统:`sudo apt update && sudo apt upgrade`(Ubuntu)或 `sudo yum update`(CentOS) #### 步骤 2:安装Git并创建专用用户 ```bash # 安装Git sudo apt install git # Ubuntu sudo yum install git # CentOS # 创建git用户并设置shell权限 sudo useradd git -m -s /usr/bin/git-shell sudo passwd git # 设置密码(可选,推荐SSH密钥登录) ``` #### 步骤 3:初始化Git仓库 ```bash # 创建仓库目录 sudo mkdir /srv/git sudo chown git:git /srv/git # 切换用户创建裸仓库 su - git cd /srv/git git init --bare sample.git # 创建示例仓库[^1][^3] ``` #### 步骤 4:配置SSH密钥访问(推荐) 1. 本地生成SSH密钥:`ssh-keygen -t ed25519` 2. 将公钥`id_ed25519.pub`内容添加到服务器: ```bash # 在服务器上操作 su - git mkdir ~/.ssh echo "客户端公钥内容" >> ~/.ssh/authorized_keys chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys ``` #### 步骤 5:测试仓库克隆 ```bash # 在客户端执行(替换yourserver为服务器IP) git clone git@yourserver:/srv/git/sample.git # [^1] ``` #### 步骤 6(可选):部署GitLab增强功能 ```bash # 安装GitLab(需要至少4GB内存) sudo apt install curl openssh-server ca-certificates postfix curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash sudo EXTERNAL_URL="http://your-domain.com" apt install gitlab-ce # 设置开机启动 sudo systemctl enable gitlab-runsvdir.service # [^2] ``` #### 防火墙配置注意 ```bash sudo ufw allow ssh # 开放22端口 sudo ufw allow http # 如果使用GitLab需开放80/443 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值