操作环境:Ubuntu 10.04 LTS
安装前提条件,已经安装 apache 服务器或者同类服务器、openssh-service,并且已经熟悉使用 Git 客户端

----- 安装 Git ----------------------------------------------------------------------------------------------------------------------------------------------------------------

sudo apt-get install git-core

----- 安装 gitosis -----------------------------------------------------------------------------------------------------------------------------------------------------------

注:Gitosis 是方便通过 Git 与 ssh 架设中央服务器的软件。
更详细步骤参见:http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

安装 python setuptools,为安装 gitosis 做准备

sudo apt-get install python-setuptools

安装 Gitosis

cd /tmpgit clone git://eagain.net/gitosis.gitcd gitosissudo python setup.py install

注:将 Gitosis 的安装文件暂存在 tmp 目录下,安装完成后可以自行删除

增加名为 Git 的用户,命令行禁用密码

sudo adduser --system --shell /bin/sh --gecos 'git version control' --group --disabled-password --home /home/git git

上传公钥到 tmp 目录下(如果没有,用本机上用 ssh-keygen -t rsa 生成,如何生成参见 Git 客户端的使用方法)

注:上传密钥文件可以通过命令行上传,也可以直接 FTP 上传

运行命令

sudo -H -u git gitosis-init < /tmp/id_rsa.pub

For good measure, let's make sure the post-update hook is set executable. I've seen it where sometimes it doesn't get set (problem with older setuptools):

sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

安装完成,现在把 gitosis-admin.git 拷到本地进行修改

gitosis-admin.git

sudo git clone git@YOUR_SERVER:gitosis-admin.git

注:如果要求输入密码,则到服务器端为用户 git 设置密码(pssswd git)

注:如果出现错误 fatal: '~/gitosis-admin.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly,则改成 sudo git clone git@YOUR_SERVER:/home/git/repositories/gitosis-admin.git,即 gitosis-admin.git 所在位置

----- 配置 gitosis ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
将 gitosis-admin.git clone 到本地后,对文件 gitosis.conf 进行相关配置。

[gitosis][group gitosis-admin]writable = gitosis-adminmembers = useremail@server another@server

文件说明:gitosis-admin 组成员有 useremail、another,该组对 gitosis-admin 仓库有读写权限。writable 对应的为项目名称,组名也为项目名称。
添加用户:
需要添加的用户在本地生成密钥(ssh-keygen -t rsa),然后将密钥放在本地项目 gitosis-admin 的 keydir 文件夹内。

配置完成后,将文件推送到服务器 git 项目仓库,然后配置更新。

----- 安装配置 gitweb ----------------------------------------------------------------------------------------------------------------------------------------------------------------
安装前提,需要已经安装 apahce 或者同类的服务器软件
1. 安装gitweb

sudo apt-get install gitweb

2. 配置gitweb
(1) 默认没有 css 加载,把 gitweb 要用的静态文件连接到 WebRoot 下:

cd /var/www/sudo ln -s /usr/share/gitweb/* .

注:注意后面的点

(2) 修改配置:

sudo vi /etc/gitweb.conf

将 $projectroot 改为gitosis-admin.git所在目录: /home/git/repositories

(3) 修改 /home/git/repositories权限,默认情况下,gitosis将 repositories权限设置为不可读的

sudo chmod 777 -R /home/git/repositories

更详细步骤参见:http://blog.enjoyrails.com/2009/01/06/git%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%89%E8%A3%85/

----- 测试::上传本地代码到服务器 git 仓库 -------------------------------------------------------------------------------------------------------------------------------------------
创建测试项目(服务器端)

sudo cd /home/git/repositories
sudo mkdir testproject.git
sudo cd testproject.git
sudo git init --bare

注:如果项目文件夹没有设置为最高权限,键入如下代码否则在本地 push 代码的时候会出现错误。

sudo chmod 777 -R /home/git/repositories/testproject.git

push 本地项目(本机)
切换到项目目录(使用 Windows 平台下 Git Bash 命令行工具)

cd F:/php_root/testproject/
git init
git add .
git commit -m 'push'
git remote add origin git@:testproject.git
git push origin master

操作顺利的话,gitweb 上可以看见已经 push 上去的项目了。

参考:
http://blog.csdn.net/ice520301/article/details/6142503
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way
http://www.enjoyrails.com/wikis/Git%E5%AE%89%E8%A3%85
http://blog.enjoyrails.com/2009/01/06/git%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%89%E8%A3%85/
http://www.stylejar.com/archives/ubuntu_install_git_server.html

转载于:https://www.cnblogs.com/shamrocker/archive/2012/08/15/2639477.html

Ubuntu 下 Git 服务器的安装和初级配置相关推荐

  1. ubuntu下git服务器搭建过程

    需求 硬件需求:一台Ubuntu或者debian电脑(虚拟机),能通过网络访问到. 软件需求:git-core, gitosis, openssh-server, openssh-client, Ap ...

  2. Ubuntu 下 svn 服务器的安装配置

    步骤一:安装 Subversion sudo apt-get install subversion subversion-tools 步骤二:创建 SVN repos sudo mkdir -p /s ...

  3. ubuntu下git搭建服务器(gitosis)

    ubuntu下git搭建服务器(gitosis) - 简书 var _hmt = _hmt || []; (function() { var hm = document.createElement(& ...

  4. ubuntu下git配置和基本使用

    ubuntu下git配置和基本使用 1.git简介   Git 是一个分布式的文件托管系统,当然这里的文件主要是源代码(文本),也可以包含其他非文本的二进制数据.由于 git 主要用于存储代码(.ja ...

  5. Ubuntu 18.04 服务器版安装桌面及软件

    Ubuntu 18.04 服务器版安装软件记录 设置root密码 使用root用户登录 安装ssh(远程连接用),最小化安装的需要,一般已安装. 将"#PermitRootLogin pro ...

  6. ubuntu下tesseract 4.0安装及参数使用

    tesseract是一个开源的OCR引擎,最初是由惠普公司开发用来作为其平板扫描仪的OCR引擎,2005年惠普将其开源出来,之后google接手负责维护.目前稳定的版本是3.0.4.0版本加入了基 ...

  7. CentOS 6.3下rsync服务器的安装与配置[转]

    CentOS 6.3下rsync服务器的安装与配置 一.rsync 简介 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以 ...

  8. ubuntu docker一键安装mysql_mysql5.6在ubuntu下的docker中安装的办法详细说明

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

  9. libevent 源码阅读 Ubuntu下muduo库的安装与使用

    libevent源码分析--代码结构_鱼思故渊的专栏-CSDN博客 LINUX实战:Ubuntu下muduo库的安装与使用 LINUX实战:Ubuntu下muduo库的安装与使用-LINUX入门-维易 ...

最新文章

  1. php 输出函数结果,PHP向浏览器输出内容的4个函数总结
  2. 关于MySQL出现`lock wait timeout exceeded; try restarting transaction` 的解决方案
  3. 4 Oracle 操作表中数据
  4. java nio.2群发_JAVA NIO TCP SOCKET 聊天群发
  5. P4849 寻找宝藏(模板:四维偏序)
  6. Linux: 系统配置 crond 和 crontab(有图有代码有真相!!!)
  7. python global 变量_python global全局变量 模块通信问题
  8. 分享一百多套开发视频教程的下载地址
  9. Kali linux新手入门视频教程Kali linux安装
  10. 大学excel题库含答案_大学生计算机基础excel试题及答案
  11. (项目笔记)opencv人脸识别
  12. 深入理解深度学习——Word Embedding(四):Skip-Gram模型的数学原理
  13. MacCMS v10 播放器配置 无法保存
  14. js 格式化prettier配置_使Prettier一键格式化WXSS
  15. 小时代3刺金时代好看吗?
  16. plt如何随心所欲的更改x轴坐标
  17. 手机外接html显示器,华为MateBook怎么连接外接显示器/投影仪?
  18. 滴滴云A100 40G 性能测试 V100陪练!
  19. 人工智能有哪些好处???
  20. 【UE4】HTTP下载

热门文章

  1. matlab计算斜方差_协方差与协方差矩阵(附Matlab实现)
  2. python 标准差_标准差python
  3. python爬虫scrapy框架爬取网页数据_Scrapy-Python
  4. 图˙谱˙马尔可夫过程˙聚类结构(转自MIT的中国留学生博客)
  5. ECCV 2018 MemTrack:《Learning Dynamic Memory Networks for Object Tracking》论文笔记
  6. php中进制转换,php中进制转换
  7. java classloader_Java Classloader原理分析
  8. CSS 字体、边框阴影
  9. hystrix源码小贴士之Yammer Publisher
  10. Linux系统中CPU使用率查询常用的5个命令