git服务器的搭建与配置

由于yum install git 安装的版本为1.7.1,比较老,所以这里想安装新版本

但git依赖多,找不到不有git新版本的yum源,故用yum安装git依赖与源码安装git相结合

1、源码安装

 依赖安装

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y

下载:https://mirrors.edge.kernel.org/pub/software/scm/git/

解压:tar  -zxvf  git-2.12.0.tar.gz

编译:make prefix=/usr/local/git all

安装:make prefix=/usr/local/git install

配置环境变量

         编辑:vim /etc/profile  加入:export PATH=$PATH:/usr/local/git/bin  生效:source /etc/profile

查看:git --version

2、 基本配置

创建git 用户

[root@localhost home]# useradd git
[root@localhost home]# passwd git

创建git仓库

mkdir -p git/repo/demo.git

初始化仓库

git init --bare git/repo/demo.git
#显示如下
Initialized empty Git repository in /home/git/repo/demo.git/

ls查看如下:

授予git用户访问权限

chown -R -v git:git ./git/*  #chown修改用户、用户组属性,为git用户所有

chmod 777 -R -v ./git/  #chmod有读写权限 -R递归遍历 -v 输出每个文件修改的信息

3、设置http代理

1、查看httpd服务是否安装

httpd -version

2、若没,进安装

yum -y install httpd

3、设置代理

#vim /etc/httpd/conf/httpd.conf  加入以下内容
DocumentRoot /home/git
<Directory "/home/git">
ServerName 127.0.0.1:80
KeepAlive on
<VirtualHost *:80>
           SetEnv GIT_PROJECT_ROOT /home/git/repo
           SetEnv GIT_HTTP_EXPORT_ALL
           ScriptAlias /git/ /usr/local/git/libexec/git-core/git-http-backend/
                
           RewriteEngine On
           RewriteCond %{QUERY_STRING} service=git-receive-pack [OR]
           RewriteCond %{REQUEST_URI} /git-receive-pack$
           RewriteRule ^/git/ - [E=AUTHREQUIRED:yes]
           <Files "git-http-backend">
                   AuthType Basic
                   AuthName "Git Access"
                   AuthUserFile /etc/httpd/conf/git.htpasswd
                   Require valid-user
                   Order deny,allow
                   Deny from env=AUTHREQUIRED
                   Satisfy any
           </Files>
</VirtualHost>


4、添加用户和密码

#首次创建git.passwd,并添加用户,设置密码
htpasswd -m  -c  /etc/httpd/conf/git.htpasswd zhangsan
#追加用户,去掉-c即可
htpasswd -m  /etc/httpd/conf/git.htpasswd

5、设置apache用户权限

chown apache:apache /etc/httpd/conf/git.htpasswd

6、设置selinux状态

# 查看selinux状态
getenforce 
# 设置为0宽容模式,临时关闭不重启
setenforce 0 

#永久关闭,重启生效
vim /etc/sysconfig/selinux
#SELINUX=enforcing
SELINUX=disabled

7、启动httpd服务

service httpd start 或 service httpd restart

4、基本操作

以下操作都是在windows的git客户端,安装简单,不再描述

1、设置用户名和邮箱

git config --global user.name "lzxlfly"  #设置用户名
git config --global user.email "lzxlfly@126.com" #设置邮箱

git config --list   #查看全局配置

git config --global --unset user.name  #删除用户名
git config --global --unset user.email #删除邮箱
git config --global --edit  #编辑配置

2、clone版本

admin@DESKTOP-851FS3J MINGW64 ~/Desktop/repo
$ git clone http://192.168.172.74/git/demo.git
Cloning into 'demo'...
warning: You appear to have cloned an empty repository.  #由于裸仓库,故有警告

#克隆指定分支
$ git clone -b dev http://192.168.172.74/git/demo.git

3、添加到暂存区

#编辑一个readme.txt文件,#将工作区中的文件添加到暂存区了
admin@DESKTOP-851FS3J MINGW64 ~/Desktop/repo/demo (master)
$ git add readme.txt

4、 提交到版本库

admin@DESKTOP-851FS3J MINGW64 ~/Desktop/repo/demo(master)
$ git commit -m readme.txt
[master (root-commit) 0b351cb] readme.txt
 1 file changed, 5 insertions(+)
 create mode 100644 readme.txt

5、查看是否有未提交文件

admin@DESKTOP-851FS3J MINGW64 ~/Desktop/repo/demo (master)
$ git status
On branch master

nothing to commit, working tree clean
#没有任何文件未提交,工作区是干净的

6、推送到远程仓库

admin@DESKTOP-851FS3J MINGW64 ~/Desktop/repo/demo (master)
$ git push origin master:master 
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 233 bytes | 233.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To http://192.168.172.71:81/git/demo.git
 * [new branch]      master -> master

#或者git push origin master,会自动在远程仓库创建master分支

7、创建分支

#创建分支
admin@DESKTOP-851FS3J MINGW64 ~/Desktop/repo/demo (master)
$ git branch dev

#查看分支
admin@DESKTOP-851FS3J MINGW64 ~/Desktop/repo/demo (master)
$ git branch
  dev
* master

8、 切换分支

#切换分支
admin@DESKTOP-851FS3J MINGW64 ~/Desktop/repo/demo (master)
$ git checkout dev
Switched to branch 'dev'

admin@DESKTOP-851FS3J MINGW64 ~/Desktop/repo/demo (dev)
$ git branch
* dev
  master
#可以看到已经切换到dev分支了

#push 远程对应分支,远程没有dev分支,自动创建
admin@DESKTOP-851FS3J MINGW64 ~/Desktop/repo/demo(dev)
$ git push origin dev
Total 0 (delta 0), reused 0 (delta 0)
To http://192.168.172.74/git/task.git
 * [new branch]      dev -> dev

9、关联分支

admin@DESKTOP-851FS3J MINGW64 ~/Desktop/repo/demo(dev)
$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:
    git branch --set-upstream-to=origin/<branch> dev

# git pull时在远程仓库找不到当前分支信息,要关联起来

admin@DESKTOP-851FS3J MINGW64 ~/Desktop/repo/demo(dev)
$ git branch --set-upstream-to=origin/dev dev
Branch 'dev' set up to track remote branch 'dev' from 'origin'.

#可以看到本地分支dev与远程分支dev已经关联起来

10、删除分支

admin@DESKTOP-851FS3J MINGW64 ~/Desktop/repo/demo (master)
$ git branch -d dev
Deleted branch dev (was 9c61db6).

11、合并分支

#切换到master分支,把dev分支合到master
admin@DESKTOP-851FS3J MINGW64 ~/Desktop/repo/demo (master)
$ git merge --no-ff dev  
Already up to date.

#默认情况下,Git执行"快进合并"(fast-farward merge)
#使用--no-ff参数后,会执行正常合并,在master分支上生成一个新节点

12、查看历史记录

admin@DESKTOP-851FS3J MINGW64 ~/Desktop/repo/demo (master)
$ git log
commit 9c61db6c07d0acc79730f75d36adf39c962af147 (HEAD -> master)
Author: zhangsan <zhangsan@ultrapower.com.cn>
Date:   Wed Aug 8 21:55:08 2018 +0800

    readme.txt

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值