文档章节

创建Git远程仓库并使用钩子功能

Sam_D
 Sam_D
发布于 2017/08/13 11:45
字数 912
阅读 30
收藏 1

原因:目前公司使用的是Git版本控制器,好奇心驱使我去学习一下弄Git远程仓库,第一次弄了个工作库出来,以为自己弄好了,然后看了一下别人的Git远程仓库发现,不对,应该弄一个裸库出来才是正道

 

正式开发

1. 首先当然你需要有一个Linux服务器啦,没有不要紧,只要你有vmware也是可以的

2. 创建用户并设置密码

id git : 查看git这个用户是否存在

useradd git : 添加git用户

passwd  git : git用户设置密码

 

3. 查看git是否创建成功

如果创建成功, /home目录下则会出现git这个文件夹的

 

4. 创建Git裸库(远程仓库)

mkdir -P :  递归创建目录

chown -R : 递归设置目标文件夹的所属用户或用户组

yum install : 使用yum安装Git

Git工作库与裸库的区别

这里简单说明一下 git init(工作库)与git init --bare(裸库)的不同

工作库:

(1)目录,创建完工作库之后,会出现.git的隐藏文件夹,进入.git的隐藏文件夹后会出现git工作文件夹

(2)工作区,可以带有git的add commit等一系列的操作,每个人都可以在远程仓库上进行操作,但容易出现冲突

 

裸库:

(1)目录,创建完裸库后,就没有.git的隐藏目录了,git的所有工作文件夹就会出现在当前目录下

(2)裸库,不提供 add commit的操作,只提供记录的功能,也就是说相当于一个日志功能的存在,A进行跟新 提交,B进行拉取 跟新也会一一记录下来,不容易出现冲突

 

5. 服务器创建ssh key

创建完key之后,文件出现在 /root/.ssh下的

 

6. 客户端创建ssh key

创建ssh key 一直按回车就可以了,完成后文件出现在 C:\Users\jiong\.ssh 下

 

7. git用户下设置公钥

在 /home/git 下创建.ssh文件夹,然后在.ssh文件夹下创建authorized_keys文件,编辑authorized_keys文件,

上面箭头的是服务器的ssh key,下面箭头的是客户端的ssh key ,可以一直追加上去的

注意:这里的ssh key 就是 id_rsa.pub这个文件的内容

 

8. 设置.ssh文件夹的用户组

chown -R 设置 .ssh 文件夹的所属是 git用户

文件与文件夹之间设置权限

 

9. 客户端拉取远程仓库文件

 

git@192.168.1.103:/home/data/git/gittest.git

192.168.1.103 : 服务器的IP地址

/home/data/git/gittest.git : 远程仓库的绝对定位地址

 

10. 禁止 git 用户 ssh 登录服务器

编辑/etc/passwd

找到:

1

git:x:1001:1001::/home/git:/bin/bash

修改为

1

git:x:1001:1001::/home/git:/bin/git-shell

 

11. 使用Git的钩子功能(实现服务器 远程仓库与本地仓库同步)

在tmp 目录下克隆的远程仓库的文件夹,目前服务器上的本地仓库是没有文件的(除了 .git 工作区)

 

进入服务器远程仓库,进入hooks文件夹下,创建 post-receive文件

编辑post-receive文件

/tmp/gittest : 就是服务器上本地仓库的地址

给予post-receive可执行的权限

chown 设置本地仓库的所属

设置所有的远程仓库都属于git用户

 

成功

 

结语

其实弄远程仓库是不难的,主要是Linux下的权限比较严谨,所以步骤比较多,多练就不会觉得难了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
Sam_D
粉丝 0
博文 14
码字总数 8031
作品 0
广州
程序员
私信 提问
用git部署网站代码到生产环境VPS

做web开发时,以前都是写好了一个新功能要发布到服务器上都是使用FTP上传覆盖原来的代码,这样做很麻烦,首先要打开FTP程序,然后进入指定文件夹,然后上传,而且用FTP上传经常容易出错总是有...

看看这天
2015/08/06
0
3
如何构建你自己的 Git 服务器

导读: 第一部分:什么是Git 第二部分:开始使用Git 第三部分: 创建您的第一个Git存储器 第四部分:如何在Git中恢复旧版本文件 第五部分:Git的三种图形工具 第六部分:如何构建你自己的Git...

oschina
2016/08/10
7.7K
13
使用 GitHub 和 Python 实现持续部署

借助 GitHub 的网络钩子webhook,开发者可以创建很多有用的服务。从触发一个 Jenkins 实例上的 CI(持续集成) 任务到配置云中的机器,几乎有着无限的可能性。这篇教程将展示如何使用 Python...

作者: Clément Verna
04/15
0
0
教你搭建你自己的Git服务器

直到现在,我们主要讨论的还是以一个使用者的身份与 Git 进行交互。这篇文章中我将讨论 Git 的管理,并且设计一个灵活的 Git 框架。你可能会觉得这听起来是 “高阶 Git 技术” 或者 “只有狂...

linuxprobe
2016/10/17
12
0
Gogs 0.10.8 发布,自助 Git 托管服务

Gogs 0.10.8 发布了,建议 Widnows 用户升级。 Bug 修复 Windows mws 版的 Git 钩子无法正常使用 包含图片的链接无法指向正确的 URL #2636 Web 编辑器无法创建带有斜杠的分支 #3568 克隆仓库...

无闻
2017/03/08
651
7

没有更多内容

加载失败,请刷新页面

加载更多

java框架学习日志-7(静态代理和JDK代理)

静态代理 我们平时去餐厅吃饭,不是直接告诉厨师做什么菜的,而是先告诉服务员点什么菜,然后由服务员传到给厨师,相当于服务员是厨师的代理,我们通过代理让厨师炒菜,这就是代理模式。代理...

白话
今天
12
0
Flink Window

1.Flink窗口 Window Assigner分配器。 窗口可以是时间驱动的(Time Window,例如:每30秒钟),也可以是数据驱动的(Count Window,例如:每一百个元素)。 一种经典的窗口分类可以分成: 翻...

满小茂
今天
5
0
my.ini

1

architect刘源源
今天
7
0
docker dns

There is a opensource application that solves this issue, it's called DNS Proxy Server It's a DNS server that solves containers hostnames, if could not found a hostname that mat......

kut
今天
8
0
寻找数学的广度——《这才是数学》读书笔记2700字

寻找数学的广度——《这才是数学》读书笔记2700字: 文|程哲。数学学习方式之广:国内外数学教育方面的专家,进行了很多种不同的数学学习方式尝试,如数学绘本、数学游戏、数学实验、数学步道...

原创小博客
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部