Linux安装Git服务-程序员宅基地

技术标签: Git  git  Linux  linux  OperationSystem  centos  

# pwd
/opt/rpmlib
# ls
asciidoc-8.6.9-1.el6.rfx.noarch.rpm gettext-devel-0.17-16.el6.x86_64.rpm
autoconf-2.63-5.1.el6.noarch.rpm libiconv-1.14.tar.gz
curl-devel-7.13.1-3.x86_64.rpm openssl-devel-1.0.1e-42.el6.x86_64.rpm
docbook2X-0.8.8-2.1.x86_64.rpm xmlto-0.0.18-4.x86_64.rpm
expat-devel-2.0.1-9.1.el6.x86_64.rpm zlib-devel-1.2.3-29.el6.x86_64.rpm
# rpm -q curl-devel
# rpm -ivh curl-devel-7.13.1-3.x86_64.rpm --nodeps
# rpm -q expat-devel
# rpm -ivh expat-devel-2.0.1-9.1.el6.x86_64.rpm --nodeps
# rpm -q gettext-devel
# rpm -ivh gettext-devel-0.17-16.el6.x86_64.rpm --nodeps
# rpm -q openssl-devel
# rpm -ivh openssl-devel-1.0.1e-42.el6.x86_64.rpm --nodeps
# rpm -q zlib-devel
# rpm -ivh zlib-devel-1.2.3-29.el6.x86_64.rpm --nodeps
# rpm -q perl-devel
perl-devel-5.10.1-119.el6_1.1.x86_64

# rpm -q asciidoc
# rpm -ivh asciidoc-8.6.9-1.el6.rfx.noarch.rpm --nodeps
# rpm -q autoconf
# rpm -ivh autoconf-2.63-5.1.el6.noarch.rpm --nodeps
# rpm -q docbook2X
# rpm -ivh docbook2X-0.8.8-2.1.x86_64.rpm --nodeps
# rpm -q xmlto
# rpm -ivh xmlto-0.0.18-4.x86_64.rpm --nodeps


要是没有gcc的相关编译器不能进行源码安装,下面是CentOS6上需要安装的gcc等相关rpm包:
cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
cpp-4.4.6-4.el6.x86_64.rpm
gcc-4.4.7-16.el6.x86_64.rpm
gcc-c++-4.4.7-16.el6.x86_64.rpm
glibc-devel-2.12-1.166.el6.x86_64.rpm
glibc-headers-2.12-1.80.el6.x86_64.rpm
kernel-headers-2.6.32-279.el6.x86_64.rpm
libstdc++-devel-4.4.6-4.el6.x86_64.rpm
mpfr-2.4.1-6.el6.x86_64.rpm
ppl-0.10.2-11.el6.x86_64.rpm


# tar -zxvf git-2.7.0.tar.gz
# cd git-2.7.0
# autoconf
# ./configure --prefix=/usr/local
# make
# make install
# vi /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib --这一行是后加的,不加这一行在输入git --version的时候会报错
# /sbin/ldconfig
# git --version
git version 2.7.0


----------------------------------------------------------------------------------


下面是Git基本操作:

RPM包下载地址: http://rpm.pbone.net/index.php3/stat/21/year/2005/month/05/day/03
http://pkgs.org/download/
http://rpmfind.net/linux/rpm2html/search.php

如果你想从源码安装 Git,需要安装 Git 依赖的库:curl、zlib、openssl、expat,还有libiconv。 如果你的系统上有 yum (如 Fedora)或者 apt-get(如基于 Debian 的系统),可以使用以下命令之一来安装最小化的依赖包来编译和安装 Git 的二进制版:

$ sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
$ sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
为了能够添加更多格式的文档(如 doc, html, info),你需要安装以下的依赖包:

$ sudo yum install asciidoc xmlto docbook2x
$ sudo apt-get install asciidoc xmlto docbook2x
当你安装好所有的必要依赖,你可以继续从几个地方来取得最新发布版本的tar包。 你可以从Kernel.org网站获取,网址为https://www.kernel.org/pub/software/scm/git,或从 GitHub 网站上的镜像来获得,网址为 https://github.com/git/git/releases。 通常在 GitHub 上的是最新版本,但 kernel.org 上包含有文件下载签名,如果你想验证下载正确性的话会用到。

rpm -q gcc gcc-c++ glibc glibc-common glibc-devel
rpm -q libicu-devel patch gcc-c++ readline-devel zlib-devel libffi-devel openssl-devel make autoconf automake libtool bison libxml2-devel libxslt-devel libyaml-devel zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
rpm -ivh gettext-devel-0.17-16.el6.x86_64.rpm --nodeps
rpm -ivh libiconv-1.14-3.el6.x86_64.rpm --nodeps

tar -zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local (或者#./configure --prefix=/usr/local/libiconv)
make
make install


接着,编译并安装:

$ tar -zxf git-2.7.0.tar.gz
$ cd git-2.7.0
$ make configure
$ ./configure --prefix=/usr
$ make all doc info
$ sudo make install install-doc install-html install-info
完成后,你可以使用 Git 来获取 Git 的升级:

$ git clone git://git.kernel.org/pub/scm/git/git.git


Red Hat Enterprise Linux 6.4源码安装Git服务器步骤如下:
rpm -q curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel
tar -zxf git-2.7.0.tar.gz
cd git-2.7.0
autoconf
./configure 或者 ./configure --prefix=/usr/local 或者 ./configure --prefix=/usr/local/git/
make
make install
# pwd
/usr/local/lib
# ls
charset.alias libcharset.so libiconv.la libiconv.so.2.5.1
libcharset.a libcharset.so.1 libiconv.so preloadable_libiconv.so
libcharset.la libcharset.so.1.0.0 libiconv.so.2
# vi /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib --这一行是后加的,不加这一行在输入git --version的时候会报错

# /sbin/ldconfig
# git --version
git version 2.7.0
# cd /usr/local/bin
# pwd
/usr/local/bin
# ls
git gitk git-shell git-upload-pack
git-cvsserver git-receive-pack git-upload-archive iconv


可以把Git服务加入到环境变量里:
# vi /etc/profile
export GIT_HOME=/usr/local/git/
export PATH=$PATH:$GIT_HOME/bin


创建Git仓库步骤如下:
# cd /
# useradd git
# passwd git
Changing password for user git.
New password:
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
# su - git
[git@testagent ~]$ ls
[git@testagent ~]$ mkdir mygitproject
[git@testagent ~]$ ls
mygitproject
[git@testagent ~]$ cd mygitproject/
[git@testagent mygitproject]$ ls
[git@testagent mygitproject]$ git --bare init
Initialized empty Git repository in /home/git/mygitproject/
[git@testagent mygitproject]$ ls
branches config description HEAD hooks info objects refs
[git@testagent mygitproject]$

https://git-for-windows.github.io/ 下载mysysgit
http://tortoisegit.org/download/ 下载TortoiseGit

先要clone一个.git文件夹到本地Windows机器

http://bbs.csdn.net/topics/390902529/
origin
[email protected]:mygitproject
http://blog.csdn.net/forever_wind/article/details/37506389
http://www.cnblogs.com/wang_yb/p/3867221.html


由于git默认拒绝了push操作,需要进行设置,修改.git/config添加如下代码:
[receive]
denyCurrentBranch = ignore


[git@testagent mygitproject]$ pwd
/home/git/mygitproject
branches config description HEAD hooks info objects refs
[git@testagent mygitproject]$ vi config
[core]
repositoryformatversion = 0
filemode = true
bare = true
[receive]
denyCurrentBranch = ignore
[git@testagent mygitproject]$ cat config


[git@testagent ~]$ pwd
/home/git
[git@testagent ~]$ git clone mygitproject git1
[git@testagent ~]$ git clone mygitproject git2
目前git branch是空的。我们提交一点东西建立master分支。
[git@testagent ~]$ cd git1
[git@testagent git1]$ pwd
/home/git/git1
[git@testagent git1]$ touch a.txt
[git@testagent git1]$ git add .
[git@testagent git1]$ git commit -m "init"
[git@testagent git1]$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 199 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To /home/git/mygitproject/
* [new branch] master -> master
[git@testagent git1]$ git branch -a
* master
remotes/origin/master


[git@testagent git2]$ pwd
/home/git/git2
[git@testagent git2]$ git pull origin
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From /home/git/mygitproject
* [new branch] master -> origin/master
[git@testagent git2]$ ls
a.txt

[git@testagent heads]$ pwd
/home/git/mygitproject/refs/heads
[git@testagent heads]$ ls
master

[git@testagent git1]$ git commit -am "a.txt add : git1 user add nihao"
[master 4356801] a.txt add : git1 user add nihao
1 file changed, 2 insertions(+), 1 deletion(-)

本地分支提交到远程分支的命令格式: git push origin 本地分支:远程分支
[git@testagent git1]$ git push origin master:master
Counting objects: 3, done.
Writing objects: 100% (3/3), 277 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To /home/git/server
9e4111e..4356801 master -> master

Windows主机上修改了某个文件后必须在TortoiseGit中做两步操作才能提交到远程仓库:
第一步: Git提交(C)-> "master"... --这一步是提交到本地仓库, 相当于git commit -am "description message"
第二步: 推送... --这一步是提交到远程仓库, 相当于git push origin master:master

【注】: Git跟Svn不同,Git必须先提交到本地仓库再提交到远程仓库。

从远程仓库拉取文件到本地的命令格式: git pull origin master:master
[git@testagent git1]$ git pull origin master:master
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From /home/git/server
4356801..a69dceb master -> master
4356801..a69dceb master -> origin/master
warning: fetch updated the current branch head.
fast-forwarding your working tree from
commit 4356801baf0cc3d83e29145384374cb4b6e30360.
Already up-to-date.
[git@testagent git1]$

删除仓库文件命令如下:
git add -u
git commit -m "delete test"
git push


Git服务器权限管理工具:
gitlab gitolite gitosis
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shihuan830619/article/details/84762925

智能推荐

如何通过C#来操作文件句柄_c# file句柄-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏12次。首先,来说一下什么是文件句柄。百度百科的解释是:在文件I/O中,要从一个文件读取数据,应用程序首先要调用操作系统函数并传送文件名,并选一个到该文件的路径来打开文件。该函数取回一个顺序号,即文件句柄(file handle),该文件句柄对于打开的文件是唯一的识别依据。要从文件中读取一块数据,应用程序需要调用函数ReadFile,并将文件句柄在内存中的地址和要拷贝的字节数传送给操作系统。当完成任务后,..._c# file句柄

vue 点击一个按钮触发两个事件_vue事件点击穿透解决大法-程序员宅基地

文章浏览阅读3.4k次。最近在做项目的过程中遇到一个非常奇葩的bug,在h5页面点击一个按钮弹出弹窗,但是这个弹窗刚出现就会自动消失,导致屏幕出现闪动现象,关键这个bug还是偶现的。经过一番研究才发现是vue事件点击穿透引起的,而且弹窗一定要在300ms内出现才会引发这个bug,接下来分析具体原因:一,click与300ms延迟vue框架内置指令v-on:click有300ms的延迟响应,这是为了判断区分单击和双击。vu..._vue双事件

dp优化入门学习_dp优化的学习路径-程序员宅基地

文章浏览阅读132次。dp优化_dp优化的学习路径

【学习笔记】杜教筛_杜教筛 csdn-程序员宅基地

文章浏览阅读629次。φ∗1idφ∗idn。_杜教筛 csdn

autojs模仿抖音logo效果_牙叔autojs源码-程序员宅基地

文章浏览阅读1.3k次。牙叔教程 简单易懂效果展示为什么做看到别人的头像是这种风格, 虽然我不会去修改自己的头像,但是我想知道如何实现这样的效果,虽然写出来了, 不过我感觉还是不完全像抖音的效果, 可能还缺点啥环境手机: Mi 11 ProAndroid版本: 11Autojs版本: 9.0.10思路抖音的logo看起来像两张图片重叠的效果两张图片是透明的还加了偏移从原图搞两张透明图片, 再叠加你将学到以下知识点设置seekbar监听事件在seekbar监听事件中, img设置图片, 然后_牙叔autojs源码

计算机基础知识_1 gb=1024 mb,fsg≤1gb.64~256m 15个节点。10gb大的txt文件存储需要-程序员宅基地

文章浏览阅读924次。1、 第一台计算机ENIAC淡生于1946年,是电子管计算机;第二代是晶体管计算机;第三代是中小规模集成电路;第四代是大规模集成电路; 3、 计算机的信息表示形式为二进制,它采用了冯。诺依曼的思想原理,即以0 和1两个数字形式用于展现,“逢二进一”;它的基本信息单位为位,即一个_1 gb=1024 mb,fsg≤1gb.64~256m 15个节点。10gb大的txt文件存储需要存多少个g

随便推点

VS2019生成DLL-程序员宅基地

文章浏览阅读4.1k次,点赞3次,收藏10次。1 生成DLL1.1 新建dll工程1.2 编写dll函数首先在头文件中进行函数声明,将一个函数声名为导出函数,就是说这个函数要被其他程序调用,即作为DLL的一个对外函数接口。通常它和extern“C”合用,形式如下:/*pch.h*/#ifndef PCH_H#define PCH_H// 添加要在此处预编译的标头#include "framework.h"extern "C" _declspec(dllexport) int myAdd(int a, int b);exter_vs2019生成dll

2021 不会还有人不会uniapp吧[狗头]_uniapp多少开发者-程序员宅基地

文章浏览阅读1.5k次,点赞4次,收藏22次。UniAPP 快速入门学习一、UniAPP 介绍(1)什么是 UniAPP ?uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到 iOS、Android、H5,以及各种小程序(微信/支付宝/百度/头条/ QQ /钉钉)等多个平台,方便开发者快速交付,不需要转换开发思维,不需要更改开发习惯。(2)为什么要选择 UniAPP ?开发者/案例数量更多几十万应用、uni 统计月活12亿、70+ 微信 / QQ群平台能力不受限在跨端的同时,_uniapp多少开发者

SQL语句多表查询-程序员宅基地

文章浏览阅读1.7w次,点赞6次,收藏43次。SQL语句多表查询_多表查询

使用Gitee多人项目协作开发的流程实例_gitee可以只开放部分目录给协作者吗-程序员宅基地

文章浏览阅读7.3k次,点赞8次,收藏60次。上一篇文章主要是初学Gitee,实现代码托管的功能,这一篇文章主要是学习Gitee协作开发的使用。这里我们用了一个企业账号来和两个社区账号进行演示。1.首先,企业账号下新建一个名称为协作开发测试仓库的公司主仓库,同时在仓库下新建两个分支lhy和lxw,同时仓库成员添加小组成员A和B。lhy用来存放组员A开发的代码部分,lxw用来存放组员B开发的代码部分。组员A、B此时在各自的账户下可以看到..._gitee可以只开放部分目录给协作者吗

idea上的maven形式的java web项目打包部署到linux的tomcat上_idea 接口发到linux 的tomcat中-程序员宅基地

文章浏览阅读378次。项目写好后,按照上述打成war包,丢到tomcat 的webapp目录里面,重启tomcat,访问链接是ip:8080/项目名/index.jsp_idea 接口发到linux 的tomcat中

详解离线安装Python库_python离线安装库-程序员宅基地

文章浏览阅读4.6w次,点赞12次,收藏22次。前段时间在项目上用到了离线部署Python环境及其依赖库,所以正好将离线安装Python库的解决方案分享给大家,希望能对新手有所帮助。文章目录1. 寻找库之间的依赖关系2. 使用requirements.txt进行批量安装_python离线安装库

推荐文章

热门文章

相关标签