自己记录一下,以后回顾使用.
直说文章抄袭借鉴这里的https://www.liaoxuefeng.com/wiki/896043488029600

环境

Centos7 .一般我都用这个.

生成 SSH Keys

这一步必须,有这个你才能进行之后推送操作.

参考这里https://evlan.cc/archives/generate-SSH-Keys.html

git仓库搭建

添加用户

安装git之后,先增加一个linux用户来专门供git使用

adduser git

设置用户不能shell登录

修改这个用户不能shell登录
这可以通过编辑/etc/passwd文件完成
git:x:1001:1001:,,,:/home/git:/bin/bash这一行改成git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
即可.因为指定的git-shell每次一登录就自动退出

给用户加公钥

给用户创建.ssh目录

mkdir  /home/git/.ssh

创建一个/home/git/.ssh/authorized_keys文件,把公钥内容粘贴进去即可.

创建仓库

然后这个用户git的工作目录在/home/git,新建一个study.git的仓库

cd /home/git && git init --bare study.git

会返回'Initialized empty Git repository in /home/git/study.git/'.
这样会在当前目录下生成一个study.git的目录.

设置权限

设置目录权限

chown -R git:git /home/git/study.git

设置文件自动实时修改

此时,你推送的文件在服务器上并不会显示,因为他只存储文件的元数据,当你修改了一个html或者php文件想要直接在服务器上看效果怎么办呢.

此时用到 git 的钩子功能.

在仓库新建一个文件post-receive
vi /home/git/study.git/hooks/post-receive,
直接写入

#!/bin/bash
git --work-tree=/home/git/study checkout -f

因为是脚本,给他可执行权限

chmod +x /home/git/study.git/hooks/post-receive

其中/home/git/study就是文件目录,以后向仓库提交文件后,他执行这个脚本把仓库文件检出到这个目录.
保存之后创建对应的文件夹及其权限设置即可

mkdir /home/git/study && chown -R git:git /home/git/study

git客户端

下载软件

下载地址https://git-scm.com/downloads,下载完安装,以下以windows为例
一般在windows下操作,下载GIT软件之后,找一个没有中文的目录右单击,选择Git Bash Here,第一次先配置一下密钥
先配置你的密钥等信息

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

然后windows+R打开运行,输入一个英文句号就是.然后回车,会打开你的工作目录.在这里打开.ssh文件夹,把你的密钥命名为id_rsa放进去即可

拉取文件

输入git clone git@服务器IP:/home/git/study.git,'/home/git/study.git'是仓库的路径.开始拉取,如果你的密钥有设置密码,这里还会要求你输入密码.

标签: Git

添加新评论

Loading...
Fullscreen Image