git 入门与应用
git可视化界面的项目版本控制软件,适用于git项目管理
SourceTree
安装方法
https://blog.csdn.net/qq_26230421/article/details/79921123
注:新版本按网上修改跳过注册的方法已经用不了
解决方法:安装链接低版本 升级更新
参考文献
https://blog.csdn.net/Jioho_chen/article/details/81007238
https://www.jianshu.com/p/a9c79489e3d3
流程:
- 在linux上安装git
- 在linux中新建一个git用户
- 创建ssh证书
- 导入ssh证书
- 选定一个空目录作为代码仓库
- 更改git命令的所有者
- 禁止ssh登录服务器
- 用git 部署裸仓库
- 创建 hooks 钩子 实现本地推送到服务器 代码实施修改
大概流程清楚后,下面开始实战:
在linux上安装git
使用命令:yum install git
创建一个git用户
创建用户:adduser git
创建密码 :passwd 12345678
windows创建ssh证书
*这里创建ssh证书,是在本地创建,而不是在服务器端创建的。这个需要注意。以win为例,打开git命令面板,
1、先配置用户名和邮箱:(如果已经配置了则跳过)
git config --global user.name '你的名称'
git config --global user.email '你的邮箱地址'
2、然后生成公钥和私钥
ssh-keygen -t rsa -C "你的邮箱地址"
回车后会看到以下界面。这里是选择ssh文件保存的路径(直接回车),我选择默认路径,即最后一行显示的、 保存在了c盘的这个位置中(c/user/Jioho/.ssh/id_rsa)。
紧接着会让你输入密码(会有2次确认,简短的英语很好理解的)。默认保持不输入(也是直接回车,避免每次clone代码都需要输入密码的麻烦)

成功执行后会看到这样的界面:

然后我们到刚才提示的c盘的目录中,找到我们需要的ssh文件。(之前一直找不到对应的文件夹,是因为C盘中的user的中文别名叫“用户”,所以C:/user/ 其实就是 C:/用户/)。打开文件夹后,里面会有2份文件,分别为公钥和私钥。

当然可以使用文本编辑器打开ssh公钥查看里面的内容(不推荐使用记事本直接打开,原因不多作解释)
这时候我们就需要把id_rsa.pub文件放到服务器上,准备下一步的工作。这里我使用的是Winscp工具。把文件放在服务器任意地方都可以,只要自己找得到就行。
导入自己的SSH证书
以上生成SSH证书的步骤弄懂后,就需要把自己的ssh公钥证书导入服务器的公钥管理的地方
在服务器中找到 /home/git/.ssh/authorized_keys 文件、如果没有就自己创建一个authorized_keys文件,注意路径不要弄错。
mkdir .ssh touch .ssh/authorized_keys 分别创建文件夹 与文件
找到刚才放在服务器上的 id_rsa.pub文件。然后使用命令:cat id_rsa.pub >> /home/git/authorized_keys (这是一个小坑 路径要写对)
最重要的一点,也是最容易出错的一点!linux一切皆文件,所以要给对应的文件设置好组和权限!!
*注:这里的/home/git/下的文件所有者必须都为git .ssh的权限为最少700或者755 authorized_keys权限最少为600
chown -R git:git /home/git/.ssh/ # 获得 git 用户对版本库的权限
chmod -R 700 /home/git/.ssh/
chmod -R 600 /home/git/.ssh/authorized_keys
创建一个裸仓库目录
选定一个空目录作为仓库 这里选择 /var/www/git 目录。切换到目录下
执行命令 : git init --bare demo.git (这样就创建了一个名叫 “demo”的git裸仓库了)
更改仓库所有者和权限
chown -R git:git demo.git
禁止linux使用git的ssh登录
这里禁止的意义是为了服务器的安全性,避免从git的ssh可以直接登录服务器
vim /etc/passwd文件
找到 : git:x:1000:1000:,,,:/home/git:/bin/bash
改为 : git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell
以上步骤都完成后,就可以试下把服务器的代码clone下来了。由于是在自己服务器搭建的git环境,所以git文件的url如下:
例子:
git clone git@'ip服务器地址':/var/www/git/demo.git ip时是需要单引号的
sourcetree源路径 :git@39.00.00.81:/var/www/git/demo.git
ip地址很好理解,而url后面的 /var/www/git/demo.git 则是git文件在服务器上的位置,如果仓库在其他目录,那么换成你对应的文件目录即可。
确认项目路径没错后,回车进行clone。这时候会看到一句警告
warning: You appear to have cloned an empty repository.
不要慌张,其实仔细一看,只是git提示我们:你似乎clone了一个空的项目。打开克隆下来的文件夹,查看是否有一个.git的隐藏文件。如果有的话,那就是已经clone成功,那也代表着linux搭建自己的git服务成功了!然后就可以进行愉快的开发了。
特别注意:在用sourcetree 克隆服务器上的仓库的时候 会显示无效的源路径 解决方法:
问题出在网上的教程服务器上在设置用户名时 没有设置密码 服务器的git 是要设密码的!
实现代码线上修改 hooks钩子
进入我们的裸仓库的hooks文件夹,然后新建一个post-receive文件
cd hooks/
vim post-receive
在post-receive写入以下内容:
#!/bin/sh
git --work-tree=/var/www/html/demo --git-dir=/var/www/git/demo.git checkout -f
(前面 --work-tree 为你要部署工作代码要上传后的所在位置 后面 --git-dir 为你服务器上裸库所在位置)
然后修改post-receive为可执行文件让其获得权限(其实这就是一个shell脚本文件)
chmod +x post-receive
post-receive的原理就是,当远程仓库发现有用户执行了push操作,就会执行一个脚本post-receive(钩子)。其实git还提供了很多其它动作的钩子,这里我们就不深入了解了
注意:同时你还需要修改你的web站点目录的权限,修改所属用户与用户组为git,否则钩子的权限可能会不足而导致执行失败。(你也可以通过添加git用户到相应的用户组来解决问题)
chown -R git:git /var/www/html/demo
chown -R git:git /var/www/git/demo.git
设置好钩子后,当你本地再次执行push的时候,你会发现你web目录的文件也同步的更新了。。。
git 入门与应用的更多相关文章
- git入门网站
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 git入门教程:对商业的.开源的. ...
- git入门及上传项目到github
Git入门: 如果你完全没有接触过Git,你现在只需要理解通过Git的语法(敲入一些命令)就可以将代码上传到远程的仓库或者下载到本地的仓库(服务器),我们此时应该有两个仓库,就是两个放代码 ...
- Git入门仅这篇就够了
版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com/cavalier-/p/5978937.html 前言 大家好,我是Cavalier ...
- git入门学习(二):新建分支/上传代码/删除分支
一.git新建分支,上传代码到新的不同分支 我要实现的效果,即是多个内容的平行分支:这样做的主要目的是方便统一管理属于同一个内容的不同的项目,互不干扰.如图所示: 前提是我的github上已经有we ...
- git入门学习(一):github for windows上传本地项目到github
Git是目前最先进的分布式版本控制系统,作为一个程序员,我们需要掌握其用法.Github发布了Github for Windows 则大大降低了学习成本和使用难度,他甚至比SVN都简单. 一.首先在g ...
- Git入门简介
1. Git 背景 Git 最初由Linus Torvalds编写,用于 Linux 内核开发的版本控制工具. Git 与常用的版本控制工具 CVS.Subversion 等不同,它采用了分布式版本 ...
- [置顶] 【Git入门之十五】Github操作指南
原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12374633 最终篇,介绍一下Github网站的使用,主要是翻译为主,简化了 ...
- Git入门—创建项目
Git入门—创建项目 注:win10系统下 打开Git Bash,进入存放仓库的目录 创建 初始化git init,该命令执行完后会在当前目录生成一个 .git 目录. 所有 Git 需要的数据和资源 ...
- git 入门教程
git 入门教程之协同开发 前面我们已经介绍过远程仓库的相关概念,不过那时并没有深入探讨,只是讲解了如何创建远程仓库以及推送最新工作成果到远程仓库,实际上远程仓库对于团队协同开发很重要,不仅仅是团队协 ...
- 廖雪峰Git入门教程
廖雪峰Git入门教程 2018-05-24 23:05:11 0 0 0 https://www.liaoxuefeng.com/wiki/00137395163059296 ...
随机推荐
- 20164322韩玉婷 -----EXP4 恶意代码分析
1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,sys ...
- Filter用户例子
用Filter防止用户访问一些未被授权的资源,比如一个用户未登录就不允许访问网站的某些页面,并将页面重定向到需要用户登录的页面,下面是一个相关的例子: package com.drp.util.fil ...
- java基础(二):java内部类
内部类像寄生虫一样生存在其他类[外部类]的内部.定义在类的内部的类叫内部类,它缩小了可见性.根据内部类定义结构的不同,可以把内部类分为 成员内部类和局部内部类.成员内部类定义的地方和外部类的成员变量和 ...
- Spring AOP详解
一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnbl ...
- 使用 AppScan 进行扫描
针对大型网站的扫描,我们按照戴明环 PDCA 的方法论来进行规划和讨论,建议 AppScan 使用步骤:计划(Plan).执行(Do).检查(check).分析(Analysis and Action ...
- 用户id,组id和文件访问权限
实际用户ID和实际组ID:标示了我们究竟是谁,这两个字段在登录时取自口令文件中的登录项 有效用户ID和有效组ID以及附属组ID:决定了我们的文件的访问权限(通常有效用户ID等于实际用户ID,有效组ID ...
- 西门子S7-300 PLC视频教程(百度网盘)
西门子S7-300 PLC视频教程(百度网盘) 百度网盘链接地址: 链接:https://pan.baidu.com/s/1MqC0DJbv-ndCzk9XGU2AYQ 提取码:u5eq 祝大家天天开 ...
- Windows 10的最新版1803版本ISO下载
Windows 10推出已经有几年时间了,笔者一直在用这个新版本.据说Windows 10以后只会推出新的更新,而不会有新的操作系统推出,所以Windows 10的更新就显得重要了.这次给大家推荐一个 ...
- 优化IIS7.5支持10万个同时请求的配置方法
通过对IIS7的配置进行优化,调整IIS7应用池的队列长度,请求数限制,TCPIP连接数等方面,从而使WEB服务器的性能得以提升,保证WEB访问的访问流畅. IIS7.5是微软推出的最新平台IIS,性 ...
- CentOS7.5 安装MySQL8 tar
1.查看是否安装mariadb 执行命令: [root@mysql ~]# rpm -qa | grep mariadb 显示: mariadb-libs-5.5.56-2.el7.x86_64 2. ...