GIT 的 使用记录
自己记录一下,以后回顾使用.
直说文章抄袭借鉴这里的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-receivevi /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'是仓库的路径.开始拉取,如果你的密钥有设置密码,这里还会要求你输入密码.