• 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库
没有结果
查看所有结果
  • 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库
没有结果
查看所有结果
没有结果
查看所有结果

GitHub(二)Git与Svn区别、安装GIT、创建仓库、克隆仓库至本地、Git工作流、Git常用指令、ssh协议创建私钥好公钥、GIt分支、创建标签(版本号)、搭建Git服务器

Mr.Lee 由 Mr.Lee
2018年6月23日
在 GIT, 版本控制
0
GitHub(二)Git与Svn区别、安装GIT、创建仓库、克隆仓库至本地、Git工作流、Git常用指令、ssh协议创建私钥好公钥、GIt分支、创建标签(版本号)、搭建Git服务器
0
分享
1
浏览

git和svn的区别

svn是集中式的版本控制系统

git是分布式的版本控制系统

集中式:

可以看出svn集中式版本控制都是把所有的版本存储在svn服务器中

且必须要联网到svn服务器才可以进行版本的回退、更新等操作。

假如哪天svn服务器坏了,那么所有的版本代码都将丢失,也就无法获取代码和回退版本等操作。天啊,这将是一个悲伤的故事!

如何化悲伤为快乐呢,来看看git如何工作的把!

分布式:

可以看出,使用git,每个电脑都有完整的版本号和日志信息。

且没有网的时候,git照样可以工作,只是把代码提交到本地,待有网在提交到远程git仓库

就算哪天git服务器坏了也没事,因为本地仓库都保存了完整的版本。

github、码云

安装git工具

git是linux之父李纳斯发明的。

安装注意自己系统的位数。

安装的时候选择安装路径即可,然后一路next即可。安装好后鼠标右键会多出以下两个选项,代表git工具安装完成。

在github创建仓库

创建仓库比较简单,参考下面的图片即可:

1、点击加号+,选择New repository新建仓库

2、输入创建仓库的信息

创建好之后,如下所示:

4、克隆远程仓库代码到本地

克隆远程的仓库代码到指定目录:

命令:git clone 仓库地址 [目录]

注意:不写目录名称会在当前目录创建一个与github仓库同名的目录

如下面的指令代表把仓库代码检出到当前目录(./)

git clone 仓库地址 ./

仓库地址位于:

仓库地址有两种协议:https、ssh。后面使用ssh协议可以免去每次推送代码输入密码的烦恼。

完整命令:git clone https://github.com/ww24kobe/test_project.git ./

git工作流

一个git仓库包含以下三个部分:

工作区:就是我们电脑里能看到的目录。

暂存区:英文名叫stage,或index。一般存放在“.git目录”的index文件中。

版本库:工作区有一个隐藏目录.git,这个不算工作区,而是git的版本库。且自动创建一个 master 分支以及指向分支的 HEAD 指针

git工作流

后面众多的git命令,就是在以上三者中互相交叉使用。

6、开发中git常用的指令

  • 全局设置:设置提交的用户名和邮箱,用于查看代码是哪些用户提交的,方便排查。

git config –global user.name 名字 # 叫啥名字

git config –global user.email 邮箱 # 怎么联系你

  • 在指定目录创建一个git仓库,但要保证此目录一定是空的。

git init :执行完后会在当前目录生成一个.git的隐藏文件夹

同时在设置远程仓库的地址:

git remote add origin url # 设置本地的远程仓库地址

  • 克隆远程的仓库代码到指定目录:

git clone url [目录]

注意:不写目录名称会在当前目录创建一个与github仓库同名的目录

如下面的指令代表把指定url仓库代码检出到当前目录(./)

git clone url ./

  • 添加当前目录的所有文件到暂存区:

git add .

  • 查看暂存区状态:

git status

  • 提交文件:

git commit -m ‘备注信息’

  • 查看提交备注的信息(查看提交记录)

git log 或者 git reflog 或 git log –pretty=oneline

  • 代码版本回退:

git reset –hard HEAD 回到当前的版本

git reset –hard HEAD^ 回到当前的版本前一个版本

git reset –hard HEAD^^ 回到当前的版本前两个版本

git reset –hard af4542g(使用git log 获取日志的前7位,可以回到指定的版本)

  • 删除文件

git rm files

  • 撤掉修改

git checkout files

  • 推送代码到远程服务器:

git push -u origin master

  • 修改本地远程仓库地址:

git remote add origin url # 设置本地的远程仓库地址

git remote rm origin # 移除本地远程仓库地址

  • 从远程服务器获取内容:

git pull orgin master 拉取远程仓库代码并合并

git fetch orgin master 拉取远程仓库代码不会合并

远程代码强制覆盖本地代码:

git pull origin master –allow-unrelated-histories

  • 仓库地址

git remote -v #查看本地的远程仓库路径

git remote rm origin #移除本地远程仓库地址

git remote add origin git@github.com:用户名/仓库名.git #设置本地的远程仓库地址

7、给ssh协议创建私钥和公钥

如果仓库地址使用https的协议,每次提交都会要求输入远程仓库github的用户名和密码,

如果我们使用ssh协议作为仓库地址的话,并且配置好私钥和公钥,每次提交就会免去输入用户名和密码的烦恼。

公钥:理解为锁,上传到github中存放着。

私钥:理解为锁的钥匙,在本地电脑存放着。

也就是说只有锁的对应钥匙才可以进行提交代码。

创建ssh私钥和公钥,输入: ssh-keygen -t rsa -C ‘邮箱地址’ ,然后一路回车即可,成功之后会在当前用户的目录多出如下的两个文件。

id.rsa:私钥文件

id_rsa.pub:公钥文件

把id_rsa.pub的公钥内容复制到github上面去,步骤如下:

添加好后如下所示:

最后修改远程仓库地址为ssh协议即可:

git remote -v #查看本地的远程仓库路径

git remote rm origin #移除本地远程仓库地址

git remote add origin git@github.com:用户名/仓库名.git #设置本地的远程仓库地址

8、git分支

master分支:每个仓库默认有的分支,主要用来发布代码新版本。

平常代码的开发在创建的开发分支 dev 上进行。

开发分支dev开发完毕后,把此分支的代码合并到master 分支,最后再把master分支下的代码推送到远程服务器(即远程仓库github)

分支有关的指令:

  • 查看仓库所有的分支:

git branch

  • 创建dev分支:

git branch dev

  • 切换分支(切换到master分支):

git checkout master

  • 合并分支dev到master主分支

先切换到要合并的分支,再把dev分支合并到当前分支

git checkout master

git merge –no-f dev -m ‘合并的信息’

注:通过选项–no-f合并也算一次提交

  • 删除分支dev:

git branch -d dev

  • 提交分支dev:

git push origin dev

有关git分支的管理策略:

创建标签(版本号)

  • 查看所有标签

git tag

  • 创建标签,版本号为1.0, -m 备注信息

git tag v1.0 -m ‘version 1.0’

  • 推送本地的所有标签到远程仓库,其他人克隆此仓库或拉取数据同步后,也会看到这些标签。

git push origin master –tags

搭建git服务器

参考简书地址:https://www.jianshu.com/p/e79ea05d9b61

环境:Centos7

一、 服务端安装

第 1 步:先安装 git 工具
git -y install git
输入 git 命令测试,若出现相应的提示说明安装成功。

第 2 步:新建一个用户起名 git
adduser git

第 3 步:在 / home/git / 目录下创建一个名为. ssh 的文件夹,在其. ssh 目录中新建一个文件名为 authorized_key, 用于后面保存客户端提供的公钥

cd /home/git
mkdir .ssh
touch authorized_key

第 4 步:在 git 用户目录创建一个仓库,名为 project.git, 在初始化此仓库

cd /home/git
mkdir project.git
git init --bare project.git

第 5 步:将 git 用户目录中的仓库和 ssh 目录的所有者和所属组都设置为 git

cd /home/git
chown -R git.git project.git/
chown -R git.git .ssh/

第 6 步:修改 sshd_config 文件,打开 RSA 认证
vim /etc/ssh/sshd_config
开启三项:

 RSAAuthentication yes     
 PubkeyAuthentication yes     
 AuthorizedKeysFile  .ssh/authorized_keys

为了安全,禁止 git 用户进行 shell 登录

vi /etc/passwd
注释 ##git:x:1000:1000::/home/git:/bin/bash 
改为 git:x:1000:1000:git version control:/home/git:/usr/bin/git-shell

至此 git 服务端安装完成。
现在来测试是否安装成功,这里以 window 系统测试为例

二、客户端测试

需要在客户端安装 git 工具,linux 系统则不需要,window 系统需要
下载地址:https://git-scm.com/download/win

第 1 步:生成私钥和公钥,使用命令 ssh-keygen -t rsa , 一路回车即可,会在当前用户的. ssh 目录生成两个文件:
私钥:id_rsa
公钥:id_rsa.pub
将公钥文件(id_rsa.pub)交给 git 服务器的管理员,会将此公钥内容添加到 authorized_key 文件中,一行一个公钥。

第 2 步:克隆 git 仓库,到本地目录测试

git clone git@xxx.xxx.xxx.xxx:/home/git/project.git  ./
git add .
git commit -m 'first commit'
git push

其中 xxx.xxx.xxx.xxx 为 git 服务器的 ip 地址

注:若提示需要密码,则检查上面的公钥和私钥是否配置成功

Git使用教程.pdf:

[embeddoc url=”http://liyouran.asia/wp-content/uploads/2018/05/Git使用教程.pdf” download=”all”]

Git分支管理策略.pdf:

[embeddoc url=”http://liyouran.asia/wp-content/uploads/2018/05/Git分支管理策略.pdf” download=”all”]

用SourceTree轻松Git项目图解.pdf:

[embeddoc url=”http://liyouran.asia/wp-content/uploads/2018/05/用SourceTree轻松Git项目图解.pdf” download=”all”]

标签: git与svn区别GIt分支Git工作流git常用指令ssh协议创建私钥好公钥克隆仓库至本地创建仓库创建标签(版本号)安装GIT搭建Git服务器
上一篇文章

Jquery(一)选择器、操作类、直接样式操作、偏移、操作 HTML 和文本、值操作、Each 循环、复选框选择

下一篇文章

GitHub(一) 配置、使用

下一篇文章
Swoole 安装、扩展源码、线程、进程、执行过程、常用事件、Http 服务器、WebSocket 服务器、Mysql 连接池、毫秒定时器、异步文件读取

GitHub(一) 配置、使用

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Search

没有结果
查看所有结果

About Me

个人随笔

Winston Lee

Programmer

Hello & welcome to my blog! My name is Winston Lee and am a programmer and am keen on sharing.

Winston Lee

About Me

Hello & welcome to my blog! My name is Winston Lee and am a programmer and am keen on sharing.

Categories

  • AJAX
  • BootStrap
  • CodeIgniter
  • CSS
  • DedeCMS
  • GIT
  • HTML
  • Javascript
  • Jquery
  • Laravel
  • Laravel在线教育平台
  • Linux
  • Memcache
  • MongoDB
  • MVC
  • Mysql
  • Nginx
  • Node
  • PDO
  • PHP
  • PHP7
  • PHP基本语法
  • PHP核心编程
  • Redis
  • Smarty
  • Socket
  • SVN
  • Swoole
  • TP3.2
  • TP3.2商城
  • TP5.0
  • TP5.0商城
  • XML
  • Yaf
  • Yii
  • Yii手机直播
  • 二次开发
  • 优化方案
  • 前端技术
  • 前端框架
  • 后台框架
  • 基本操作
  • 微信公众号
  • 数据库
  • 未分类
  • 混合APP
  • 源码Blog项目
  • 版本控制
  • 环境搭建
  • 移动端开发
  • 网站优化
  • 资料
  • 面向对象
  • 面向对象编程
  • 页面静态化

Tags

DOM Json RBAC 事件 传参 函数 分页 判断语句 匿名函数 变量 图片上传 存储过程 安装 对象 封装 属性 接口 控制器 数据库操作 数据类型 数据表 数组 文件上传 无刷新分页 权限 标签 模型 正则 流程控制 目录结构 算法 类 索引 继承 缩略图 表关系 视图 路由 运算符 选择器 递归 配置 错误处理 页面静态化 验证码
  • 首页
  • 前端
  • 前端框架
  • PHP
  • 数据库
  • 优化
  • 后台框架与实战
  • 移动开发
  • 二次开发
  • Linux
  • 版本控制
  • Node.js
  • 资料库

沪公网安备31011502400873 | 沪ICP备2024050435号-3

没有结果
查看所有结果
  • 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库

沪公网安备31011502400873 | 沪ICP备2024050435号-3