git是一个不错的版本管理的工具。现在自己在搞一个简单的应用程序开发,想使用git来进行管理。在Google了配置文档后,还是受了N多的挫折。某些文档质量不高,浪费了好多时间......

好,切入正题:

安装必要的git工具

#apt-get install git git-core

centos linux 下载git

# wget https://www.kernel.org/pub/software/scm/git/git-2.8.1.tar.gz

备注:安装时可能会遇到若干问题:
  1.编译缺少lib,使用yum安装
  2.没有设置prefix,不知道安装到那里
  3.安装完成直接执行git无反应,需要建立软连接

  make prefix=/usr/local all doc

  make prefix=/usr/local install install-doc
 
  wget http://git-core.googlecode.com/files/git-1.7.10.tar.gz
  tar zxvf git-1.7.10.tar.gz
  cd git-1.7.10
  ./configure --prefix=/usr/local/git
  make
  make install
  git依赖zlib-devel,openssl-devel,perl,cpio,expat-devel,gettext-devel这些包,如果出错基本上也是这些包造成的。我在安装时出现了如下错误。
 
  出现错误一:
  usr/bin/perl Makefile.PL PREFIX='/usr/local/git' INSTALL_BASE='' --localedir='/usr/local/git/share/locale'
  Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5   /usr/share/perl5 .) at Makefile.PL line 3.
  BEGIN failed--compilation aborted at Makefile.PL line 3.
  make[1]: *** [perl.mak] Error 2
  make: *** [perl/perl.mak] Error 2
  执行:
    yum install perl-ExtUtils-MakeMaker package.
  行进安装
  出现错误二:
   /bin/sh: msgfmt: command not found
  yum install gettext-devel
  可解决!
   

Git在make的时候报错:Can't locate ExtUtils/MakeMaker.pm in @INC

解决方法如下:

yum -y install perl-devel perl-CPAN

git 需要perl来编译。然后重新make

Git Make时出现:tclsh failed; using unoptimized loading

MSGFMT    po/bg.msg make[1]: *** [po/bg.msg] 错误 127

yum install tcl  build-essential tk gettext

安装之后使用https操作git 出现 :fatal: Unable to find remote helper for 'https'

yum install -y curl curl-devel

然后重新安装 git

安装之后 git --version 仍然是旧版本(1.7.12)

git 安装时不使用--prefix指定安装目录,默认安装到/usr/local/bin/git ,需要把/usr/local/bin/git 复制或者ln到 /usr/bin/git

  为了省时间,你可以利用各distribution的包管理工具来一键安装。若是条件允许,从源代码安装有很多好处,至少可以安装最新的版本。Git 的每个版本都在不断尝试改进用户体验,所以能通过源代码自己编译安  装最新版本就再好不过了。有些 Linux 版本自带的安装包更新起来并不及时,所以除非你在用最新的 distro 或者 backports,那么从源代码安装其实该算是最佳选择。
  Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。在有 yum 的系统上(比如 Fedora)或者有 apt-get 的系统上(比如 Debian 体系),可以用下面的命  令安装:
  0. Git安装前环境配置:
      $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 
      $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev 
  1. Git下载源:
      http://git-scm.com/downloads(official website)
      http://code.google.com/p/git-core 
      https://github.com/git/git  (大陆的朋友建议使用后俩个源下载)
  2. 解压缩包并进入Git目录:
     $ sudo tar zxf git-1.8.0.tar.gz 
     $ cd git-1.8.0
  3. 编译源码:
     $ sudo make prefix=/usr/local/git all doc
     // 这里同时指定all和doc这两个目标,指定doc是为了安装git的帮助文档到man手册里面,只指定all的话,默认并不包含git的帮助文档,这样在man手册中就查不到git的帮助。
  *********************************************************************
  在编译all目标时,可能会报下面的错:
        /bin/sh: curl-config: not found
        fatal error: openssl/ssl.h: No such file or directory
     这是因为git源码需要的一些开发包没有被安装。我是通过安装下面的包来解决这个问题的:
     $ sudo yum install libcurl4-openssl-dev
     网上有个方法是安装libssl-dev包,这个方法可以解决 fatal error: openssl/ssl.h: No such file or directory 的问题,但是/bin/sh: curl-config: not found问题还是存在,编译的时候还是编不过。在我的  机子上,安装libcurl4-openssl-dev能同时解决这两个问题,安装libcurl4-openssl-dev时,会自动安装libssl-dev包。
  在编译doc目标时,可能会报下面的错:
            /bin/sh: line 1: asciidoc: command not found
   这个包可以到这里下载并执行make(./configure ;make ;make install)常用方法安装http://sourceforge.net/projects/asciidoc
/bin/sh: line 1: xmlto: command not found 
   xmlto这个包不太好找,不过有adam在,这些都是浮云(呵呵)。下载地址:https://fedorahosted.org/releases/x/m/xmlto/,安装方法同asciidoc。
************************************************************************
4. 安装:
   $ sudo make prefix=/usr/local/git install install-doc
   // 这里同样,如果想要在man手册中看到git的帮助文档,需要额外安装,即上面的install-doc。如果只指定install目标的话,在man手册中是查不到git的相关命令帮助的。
5. 查看新安装的git版本号:
   $ ./usr/local/git/bin/git --version
   git version 1.8.0
6. 为了以后使用方便,我们这里做一个软连接:
   $ ln -s /usr/local/git/bin/* /usr/bin/
   
   
=================================================
极速安装git最新版(update 20131209):
$ git clone git://git.kernel.org/pub/scm/git/git.git
$ make prefix=/usr/local all        (编译)
$ sudo make prefix=/usr/local install       (安装)
=================================================

安装好了以后,进行设置

1. 创建一个git目录

#mkdir /git

#cd /git/

#mkdir myproject

2. 创建一个空的git仓库

#git-init-db

3. 创建工程的文件

# echo "My test project" > test.txt

* 此步很重要,如果要在远程clone这个project, 这个project必须是非空的,否则会失败。

4. 使用git命令添加并提交新的文件

#git-add test.txt

#git-commit -m "Init"

至此,本地的git 仓库就创建好了。想要在远程clone这个project,还需要使用git-daemon

5. 安装git-daemon-run.  git-daemon-run实际是一个脚本管理工具,用来启动git-daemon.

#apt-get install git-daemon

6. 配置git-daemon-run

#vi /etc/sv/git-daemon/run

可以看到

#!/bin/sh
exec 2>&1
echo 'git-daemon starting.'
exec chpst -m64000000 /

git-daemon --verbose --base-path=/var/cache /var/cache/git

将最后一句的git-daemon修改为

git-daemon --verbose --export-all --base-path=/git/

* 这里,我加上了一个--export-all.看下man手册就可以知道,使用该选项后,在git仓库中就不必创建git-daemon-export-ok文件。如果不使用该选项,则在第4步还需要创建该文件,即

#touch git-daemon-export-ok

7.使用git-daemon-run工具重启git-daemon,干脆重启下系统

8. 从client导出server(192.168.35.69)上的myproject

git-clone git://192.168.35.69/myproject

Git服务器安装详解及安装遇到问题解决方案的更多相关文章

  1. Git服务器安装详解及安装遇到问题解决方案【转】

    转自:http://www.cnblogs.com/grimm/p/5368777.html git是一个不错的版本管理的工具.现在自己在搞一个简单的应用程序开发,想使用git来进行管理.在Googl ...

  2. iOS开发——开发实战篇&版本控制SVN和Git使用详解

     版本控制SVN和Git使用详解     公司的实际开发中,在天朝使用较多的还是SVN,因为SVN是集中式的,在天朝上班你们都懂的!     -----------------svn--------- ...

  3. 【Git使用详解】Egit的常用操作详解

    常用操作 操作 说明 Fetch 从远程获取最新版本到本地,不会自动merge Merge 可以把一个分支标签或某个commit的修改合并现在的分支上 Pull 从远程获取最新版本并merge到本地相 ...

  4. Git应用详解第二讲:Git删除、修改、撤销操作

    前言 前情提要:Git应用详解第一讲:Git分区,配置与日志 在第一讲中我们对Git进行了简单的入门介绍,相信聪明的你已经了解Git的基本使用了. 这一讲我们来进一步深入学习Git应用,着重介绍Git ...

  5. Git应用详解第五讲:远程仓库Github与Git图形化界面

    前言 前情提要:Git应用详解第四讲:版本回退的三种方式与stash 这一节将会介绍本地仓库与远程仓库的一些简单互动以及几款常用的Git图形化界面,让你更加方便地使用git. 一.Git裸库 简单来说 ...

  6. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  7. Git命令详解

    一个中文git手册:http://progit.org/book/zh/ 原文:http://blog.csdn.net/sunboy_2050/article/details/7529841 前面两 ...

  8. git命令详解( 七 )

    此为git命令详解的第七篇 这章我们可以来逐渐揭开 git push.fetch 和 pull 的神秘面纱了.我们会逐个介绍这几个命令,它们在理念上是非常相似的.   git push的参数 git ...

  9. git命令详解( 四 )

    此篇为git命令详解的第四篇,话不多说,我们直接上知识点好吧 git Push 偏离的工作 gitPush: 此命令负责将你的变更上传到指定的远程仓库,并在远程仓库上合并你的新提交记录.一旦 git ...

随机推荐

  1. 如何给pdf文件中的一页添加水印

    如题所述,项目需求.要把一份文件尾部加上签章,首先想到的就是水印. 开始试过了无论是word还是wps所谓的水印其实就是页脚或页眉统一格式,无法单一一个页面操作,要加所有的页面都有. 纵然wps有个功 ...

  2. 第十二节:MVC中的一些特殊优化

    一. 删除WebForm视图引擎 在MVC框架中检索视图的顺序为:当前控制器下对应的文件夹的aspx文件→share文件夹aspx文件→当前控制器下对应文件夹的cshtml文件→share文件夹的cs ...

  3. 第七节:语法总结(1)(自动属性、out参数、对象初始化器、var和dynamic等)

    一. 语法糖简介   语法糖也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方 ...

  4. webpack 代码优化压缩方法

    在配置基于webpack的react单页面脚手架时,公共依赖库代码打包至vender.js中,页面逻辑代码打包至app.js中,使用webpack-bundle-analyzer分析发现,两个js中包 ...

  5. Django之Xadmin

    零.预备知识 单例对象 方式一:__new__方法 方式二:模块导入,只要在引入的文件中实例了这个对象,不管引道哪里,这个对象都指向同一个内存空间 class My_singleton(object) ...

  6. GMM与EM共舞

    GMM,即高斯混合模型(Gaussian Mixture Model),简单地讲,就是将多个高斯模型混合起来,作为一个新的模型,这样就可以综合运用多模型的表达能力.EM,指的是均值最大化算法(expe ...

  7. C语言官网蓝桥杯训练1115DNA

    这道题是比较简单的输出字符图形的题,但是有几个坑还是要注意下. 1.题中所述的X是大写的,不要看成小写了.(我就错了好几次) 2.每一行输出最后的X后不能在输出空格. 3.输出两个DNA中间有一个空行 ...

  8. 主机服务绑定IP

    在用 netstat -na  查看当前主机提供的服务,例如显示如下结果: tcp        0      0 127.0.0.1:9000              0.0.0.0:*      ...

  9. C++设计模式——模板方法模式

    模板方法模式 在GOF的<设计模式:可复用面向对象软件的基础>一书中对模板方法模式是这样说的:定义一个操作中的算法骨架,而将一些步骤延迟到子类中.TemplateMethod使得子类可以不 ...

  10. Mac 环境部署Docker私有仓库

    docker的私有仓库类似maven的私服,一般用于公司内部搭建一个类似docker hub的环境,这样上传.下载镜像速度较快,本文将演示如何在mac上利用docker-machine搭建无需SSL证 ...