创建Git远程仓库并使用钩子功能
博客专区 > Sam_D 的博客 > 博客详情
创建Git远程仓库并使用钩子功能
Sam_D 发表于5个月前
创建Git远程仓库并使用钩子功能
  • 发表于 5个月前
  • 阅读 14
  • 收藏 1
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购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下的权限比较严谨,所以步骤比较多,多练就不会觉得难了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

共有 人打赏支持
粉丝 1
博文 12
码字总数 5456
×
Sam_D
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: