一 安装git,设置git用户(当前操作是root用户)

1.安装git

yum install git

2.创建git用户

groupadd git
useradd git -g git

3.创建证书登录

收集用户的公钥,公钥是用户自己生成,不懂的可以看看 https://www.cnblogs.com/JahanGu/p/9884344.html

把公钥导入到authorized_keys文件里面

cat id_rsa.pub>>authorized_keys

也可以直接打开公钥复制里面的内容粘贴到authorized_keys文件里,一行一个;

cd /home/git

mkdir .ssh

chmod 755 .ssh

touch .ssh/authorized_keys

chmod 644 .ssh/authorized_keys

4.初始化git仓库

选定一个目录作为我们的git仓库,例如:/home/mygit/demo.git

cd /home
mkdir mygit
chown git:git mygit/
cd mygit git init --bare demo.git

执行初始化会输出

Initialized empty Git repository in /home/mygit/demo.git/

初始化成功之后就可以在本地客户端clone了(注意demo.git文件权限问题,不然提交不上代码)

二 本地客户端测试(可以安装source tree工具操作)

git clone ssh://git@xxxx.xxxx.xxxx:22/home/mygit/demo.git

git clone ssh://{服务端用户}@{你的ip}:{端口号默认是22,如果不是22就写,否则不用写}{你的仓库路径}

试着提交一个文件看看

touch test.txt
git add .
git commit -m 'test'
git push origin master

此时你到服务器找这个test.txt文件是看不到的

(注意 --bare参数创建的裸仓库,就是没有工作区的,提交上来的文件是看不到的)

(1) 如果要创建一个可以看到项目文件的仓库就按照下面操作执行

git init demo.git
cd demo.git
git config receive.denyCurrentBranch ignore

最后一句命令是允许文件上传到远程服务器,不执行这句,客户端无法提交文件到服务器

其实就是在/home/mygit/demo.git/.git/config文件里面添加了

接下来创建钩子在/home/mygit/demo.git/.git/hooks目录下新建文件post-receive

vim post-receive
#!/bin/sh
unset GIT_DIR //清空git的工作目录,(没有使用该代码,报错:remote: fatal: Not a git repository: '.')
cd .. 
git checkout -f

给post-receive执行权限

chmod 755 post-receive
chown -R git:git mygit/

接下来在客户端执行提交文件,在/home/mygit/demo.git仓库里面就可以看到文件啦;(注意demo.git文件权限问题,不然提交不上代码)

(2) 如果要创建一个自动更新的web项目按照下面操作执行

首先创建一个web项目目录例如/home/myweb/把这个目录拥有者变成git

从新更新钩子post-receive的代码

#!/bin/sh
unset GIT_DIR  //清空git的工作目录,(没有使用该代码,报错:remote: fatal: Not a git repository: '.')
cd .. 
git checkout -f
WORK_TREE='/home/myweb'
git --work-tree="${WORK_TREE}" reset --hard

现在在客户端提交一个文件,在/home/myweb目录下面就看到文件了,只有操作master提交才会有文件

linux自建git仓库的更多相关文章

  1. linux配置远程Git仓库

    一,安装git yum install git 二,在服务器(119.28.1.1)目录( /git/admin )上创建一个仓库 cd /git/admin touch aaa.html git i ...

  2. 如何在Linux下使用Gitblit工具创建Git仓库服务

    嗨!朋友,今天我们将学习如何在你的Linux服务器或者PC上安装Gitblit工具.首先,我们看看什么是Git,它的功能以及安装Gitblit的步骤.Git是分布式版本控制系统,它强调速度.数据一致性 ...

  3. git学习笔记02-创建一个仓库提交一个文件-原来就是这么简单

    打开安装好的git bash,设置你的git信息  (这个随便写就行) 初始化一个Git仓库,分三步.(创建文件夹也可以手动创建,也可以命令行创建) 第一步,进到一个目录  cd e: 第二步,创建一 ...

  4. 【转】linux之自建yum仓库

    原链接:http://www.live-in.org/archives/1410.html 平时使用yum方式安装更新软件,可以自建一个yum源,同步官方更新源,这样如果本地有机器要升级的话就可以直接 ...

  5. Linux git 在自己的服务器上建立 git 仓库(repository)

    Linux git 在自己的服务器上建立 git 仓库(repository) 服务器端: 在这里使用 ssh 方式登陆: ssh [username]@server_address(建议用超级用户登 ...

  6. Linux 搭建git 自己拉取本地 git pull,其他地方的git仓库拉取代码

    Linux 下建立 Git 与 GitHub 的连接 Git 是一款开源的分布式版本控制系统,而 GitHub 是依托 Git 的代码托管平台. GitHub 利用 Git 极其强大的克隆和分支功能, ...

  7. 在Linux上搭建私有git仓库

    最近在学Linux,顺便将自己的服务器用起来,不然又得废弃一年.这次是跟着网上的教程做一个简单的git私有仓库,复杂完整的git系统还需使用gitlib系统. 首先在linux上安装git yum i ...

  8. Linux环境下搭建Git仓库

    1.安装Git $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel $ yum ...

  9. 本地git仓库推送到服务器自建的git仓库实现目录文件同步教程

    首先,先在服务器上安装git,如果有git的话就不用走这一步了 yum安装git [root@iZuf6fazwjb6lb3z82smzoZ ~]# cd src/ [root@iZuf6fazwjb ...

随机推荐

  1. PL/SQL编程基础(一):PL/SQL语法简介(匿名PL/SQL块)

    PL/SQL PL/SQL是Oracle在关系数据库结构化查询语言SQL基础上扩展得到的一种过程化查询语言. SQL与编程语言之间的不同在于,SQL没有变量,SQL没有流程控制(分支,循环).而PL/ ...

  2. Python大数据:外部数据获取(网页抓取)

    import urllib2 as url import cookielib,StringIO,gzip,json import pandas as pd import numpy as np #定义 ...

  3. 关于uuid与自增列的选择

    关于uuid与自增列的选择 在db交流群里看到有人提问,说他的userName 登录名是唯一的,可以用其做主键嘛,如果用自增列,那又要多一列. 后面又说,如果要用主键ID,用uuid会不会好一些呢?作 ...

  4. [WorldWind学习]18.High-Performance Timer in C#

    In some applications exact time measurement methods are very important. 一些应用程序中精确的时间测量是非常重要的. The of ...

  5. Executor框架与Thread

    Executor将线程的创建和线程的执行解耦,比较下面两个例子: 1:TaskExecutionWebServer.java package chapter06; import java.io.IOE ...

  6. [py][lc]python的纸牌知识点

    模块collections-collections.namedtuple表示tuple 如表示一个坐标, t = (1,2), 搞不清楚. 如果这样就对了Point(x=1, y=2) from co ...

  7. NFS-网络文件共享服务

    目录 NFS介绍 什么是NFS(Network File System) 搭建NFS服务需要的软件包 极简步骤搭建NFS服务 准备两台机器 配置服务端(nfs-server) 配置客户端(web-cl ...

  8. Web前台学习总结

    前台的技术有很多种,流行的框架也是枚不胜举,在这里我们只讨论html,css,js这些基本的技术,相信大家如果掌握了这些最基本的技术,其他的技术也就会使用了. 下面是一个案例的形式来讲解上述的技术. ...

  9. Win10取消开机密码方法

    1.开始菜单输入命令“netplwiz” 2.进入到用户账户页面,选择所需账户,把“要使用本计算机,用户必须输入用户名和密码”单选框取消勾选,点击应用 3.输入密码进行 这个时候会提示输入两次该账户的 ...

  10. springcloud9----feign-client-without-hystrix

    package com.itmuch.cloud; import org.springframework.boot.SpringApplication; import org.springframew ...