<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>版本控制 &#8211; 个人随笔</title>
	<atom:link href="/classify/%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6/feed" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description></description>
	<lastBuildDate>Sat, 23 Jun 2018 11:00:49 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.1</generator>

<image>
	<url>/wp-content/uploads/2022/01/cropped-截屏2022-01-01-18.57.09-32x32.png</url>
	<title>版本控制 &#8211; 个人随笔</title>
	<link>/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>SVN 配置、使用</title>
		<link>/%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6/3551.html</link>
					<comments>/%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6/3551.html#respond</comments>
		
		<dc:creator><![CDATA[Mr.Lee]]></dc:creator>
		<pubDate>Sat, 19 May 2018 10:17:38 +0000</pubDate>
				<category><![CDATA[SVN]]></category>
		<category><![CDATA[版本控制]]></category>
		<category><![CDATA[使用]]></category>
		<category><![CDATA[配置]]></category>
		<guid isPermaLink="false">/?p=3551</guid>

					<description><![CDATA[1、SVN概述 1.1、为什么要使用版本控制软件 在实际开发项目的过程中往往是多人在协同开发项目。如果多人在开 [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>1、SVN概述</h1>
<h2>1.1、为什么要使用版本控制软件</h2>
<p>
  在实际开发项目的过程中往往是多人在协同开发项目。如果多人在开发项目就暴露出了代码的相关(代码的管理)的问题
</p>
<p>
  代码备份
</p>
<p>
  代码还原
</p>
<p>
  问题追踪
</p>
<p>
  对于上面列出的代码管理的相关问题就需要使用版本控制软件来帮助管理项目代码
</p>
<h2>1.2、常见的版本控制软件</h2>
<p>
  CVS：比较奇葩的产品(svn的前身)
</p>
<p>
  VSS：微软开发的版本控制软件
</p>
<p>
  ClearCase：IBM开发的一款收费的版本控制软件
</p>
<p>
  Svn：属于一款集中式的版本控制软件
</p>
<p>
  Git：属于一款分布式的版本控制软件
</p>
<h2>1.3、什么是SVN</h2>
<p>
  Subversion是一个自由/开源版本控制系统，c/s结构(有客户端有服务端),一组文件存放在中心版本库，这个版本库很像一个普通的文件服务器，只是它可以记录每一次文件和目录的修改，这便使你可以取得数据以前的版本，从而可以检查所作的更改。从这个方面看，许多人把版本控制系统当作一种“时间机器”。
</p>
<p>
  备注：svn是一种cs结构的软件。有客户端也有服务端。Svn是帮助管理项目代码的软件。能够实现问题追踪、代码还原、等功能。
</p>
<h1>SVN软件搭建</h1>
<h2>2.1、SVN软件获取</h2>
<p>
  SVN分为服务器端与客户端
</p>
<p>
  服务器端：VisualSVN 或  SubVersion
</p>
<p>
  客户端：TortoiseSVN
</p>
<p>
  服务端下载地址：https://www.visualsvn.com/visualsvn/download/
</p>
<p>
  客户端下载地址 ：http://tortoisesvn.net/downloads
</p>
<h2>2.2、SVN服务端的安装</h2>
<p>
  ①进入下载的svn软件目录
</p>
<p><img fetchpriority="high" decoding="async" width="851" height="205" src="/wp-content/uploads/2018/05/word-image-3142.png" class="wp-image-3552" srcset="/wp-content/uploads/2018/05/word-image-3142.png 851w, /wp-content/uploads/2018/05/word-image-3142-300x72.png 300w, /wp-content/uploads/2018/05/word-image-3142-768x185.png 768w" sizes="(max-width: 851px) 100vw, 851px" /></p>
<p>
  ②运行安装
</p>
<p><img decoding="async" width="948" height="602" src="/wp-content/uploads/2018/05/word-image-3143.png" class="wp-image-3553" srcset="/wp-content/uploads/2018/05/word-image-3143.png 948w, /wp-content/uploads/2018/05/word-image-3143-300x191.png 300w, /wp-content/uploads/2018/05/word-image-3143-768x488.png 768w" sizes="(max-width: 948px) 100vw, 948px" /></p>
<p>
  ③接受协议下一步
</p>
<p><img decoding="async" width="487" height="377" src="/wp-content/uploads/2018/05/word-image-3144.png" class="wp-image-3554" srcset="/wp-content/uploads/2018/05/word-image-3144.png 487w, /wp-content/uploads/2018/05/word-image-3144-300x232.png 300w" sizes="(max-width: 487px) 100vw, 487px" /></p>
<p>
  ④选择界面类型
</p>
<p><img loading="lazy" decoding="async" width="612" height="373" src="/wp-content/uploads/2018/05/word-image-3145.png" class="wp-image-3555" srcset="/wp-content/uploads/2018/05/word-image-3145.png 612w, /wp-content/uploads/2018/05/word-image-3145-300x183.png 300w" sizes="(max-width: 612px) 100vw, 612px" /></p>
<p>
  ⑤选择安装类型
</p>
<p><img loading="lazy" decoding="async" width="484" height="381" src="/wp-content/uploads/2018/05/word-image-3146.png" class="wp-image-3556" srcset="/wp-content/uploads/2018/05/word-image-3146.png 484w, /wp-content/uploads/2018/05/word-image-3146-300x236.png 300w" sizes="(max-width: 484px) 100vw, 484px" /></p>
<p>
  安装操作暂时先到此处
</p>
<p>
  ⑥创建目录
</p>
<p><img loading="lazy" decoding="async" width="894" height="284" src="/wp-content/uploads/2018/05/word-image-3147.png" class="wp-image-3558" srcset="/wp-content/uploads/2018/05/word-image-3147.png 894w, /wp-content/uploads/2018/05/word-image-3147-300x95.png 300w, /wp-content/uploads/2018/05/word-image-3147-768x244.png 768w" sizes="(max-width: 894px) 100vw, 894px" /></p>
<p>
  ⑦继续安装指定安装地址
</p>
<p><img loading="lazy" decoding="async" width="499" height="384" src="/wp-content/uploads/2018/05/word-image-3148.png" class="wp-image-3559" srcset="/wp-content/uploads/2018/05/word-image-3148.png 499w, /wp-content/uploads/2018/05/word-image-3148-300x231.png 300w" sizes="(max-width: 499px) 100vw, 499px" /></p>
<p>
  ⑧剩余的一路下一步安装即可
</p>
<p>
  最终安装完成之后界面如下
</p>
<p><img loading="lazy" decoding="async" width="492" height="380" src="/wp-content/uploads/2018/05/word-image-3149.png" class="wp-image-3560" srcset="/wp-content/uploads/2018/05/word-image-3149.png 492w, /wp-content/uploads/2018/05/word-image-3149-300x232.png 300w" sizes="(max-width: 492px) 100vw, 492px" /></p>
<h2>2.3、安装客户端</h2>
<p>
  ①确定自己本机的位数
</p>
<p><img loading="lazy" decoding="async" width="1162" height="655" src="/wp-content/uploads/2018/05/word-image-3150.png" class="wp-image-3561" srcset="/wp-content/uploads/2018/05/word-image-3150.png 1162w, /wp-content/uploads/2018/05/word-image-3150-300x169.png 300w, /wp-content/uploads/2018/05/word-image-3150-768x433.png 768w, /wp-content/uploads/2018/05/word-image-3150-1024x577.png 1024w" sizes="(max-width: 1162px) 100vw, 1162px" /></p>
<p>
  ②根据自己电脑的位数选择安装的客户端版本
</p>
<p><img loading="lazy" decoding="async" width="891" height="317" src="/wp-content/uploads/2018/05/word-image-3151.png" class="wp-image-3562" srcset="/wp-content/uploads/2018/05/word-image-3151.png 891w, /wp-content/uploads/2018/05/word-image-3151-300x107.png 300w, /wp-content/uploads/2018/05/word-image-3151-768x273.png 768w" sizes="(max-width: 891px) 100vw, 891px" /></p>
<p>
  ③运行svn的客户端
</p>
<p><img loading="lazy" decoding="async" width="770" height="593" src="/wp-content/uploads/2018/05/word-image-3152.png" class="wp-image-3563" srcset="/wp-content/uploads/2018/05/word-image-3152.png 770w, /wp-content/uploads/2018/05/word-image-3152-300x231.png 300w, /wp-content/uploads/2018/05/word-image-3152-768x591.png 768w" sizes="(max-width: 770px) 100vw, 770px" /></p>
<p>
  ④同意协议
</p>
<p><img loading="lazy" decoding="async" width="484" height="385" src="/wp-content/uploads/2018/05/word-image-3153.png" class="wp-image-3564" srcset="/wp-content/uploads/2018/05/word-image-3153.png 484w, /wp-content/uploads/2018/05/word-image-3153-300x239.png 300w" sizes="(max-width: 484px) 100vw, 484px" /></p>
<p>
  ⑤选择安装地址
</p>
<p><img loading="lazy" decoding="async" width="483" height="379" src="/wp-content/uploads/2018/05/word-image-3154.png" class="wp-image-3565" srcset="/wp-content/uploads/2018/05/word-image-3154.png 483w, /wp-content/uploads/2018/05/word-image-3154-300x235.png 300w" sizes="(max-width: 483px) 100vw, 483px" /></p>
<p>
  ⑥安装
</p>
<p><img loading="lazy" decoding="async" width="499" height="389" src="/wp-content/uploads/2018/05/word-image-3155.png" class="wp-image-3566" srcset="/wp-content/uploads/2018/05/word-image-3155.png 499w, /wp-content/uploads/2018/05/word-image-3155-300x234.png 300w" sizes="(max-width: 499px) 100vw, 499px" /></p>
<p>
  ⑦安装完成
</p>
<p><img loading="lazy" decoding="async" width="489" height="375" src="/wp-content/uploads/2018/05/word-image-3156.png" class="wp-image-3567" srcset="/wp-content/uploads/2018/05/word-image-3156.png 489w, /wp-content/uploads/2018/05/word-image-3156-300x230.png 300w" sizes="(max-width: 489px) 100vw, 489px" /></p>
<p>
  安装完成之后鼠标右键效果如下
</p>
<p><img loading="lazy" decoding="async" width="582" height="610" src="/wp-content/uploads/2018/05/word-image-3157.png" class="wp-image-3568" srcset="/wp-content/uploads/2018/05/word-image-3157.png 582w, /wp-content/uploads/2018/05/word-image-3157-286x300.png 286w" sizes="(max-width: 582px) 100vw, 582px" /></p>
<h2>2.4、安装中文的语言包</h2>
<p>
  ①运行安装包
</p>
<p><img loading="lazy" decoding="async" width="746" height="513" src="/wp-content/uploads/2018/05/word-image-3158.png" class="wp-image-3569" srcset="/wp-content/uploads/2018/05/word-image-3158.png 746w, /wp-content/uploads/2018/05/word-image-3158-300x206.png 300w, /wp-content/uploads/2018/05/word-image-3158-220x150.png 220w" sizes="(max-width: 746px) 100vw, 746px" /></p>
<p>
  ②下一步安装
</p>
<p><img loading="lazy" decoding="async" width="493" height="383" src="/wp-content/uploads/2018/05/word-image-3159.png" class="wp-image-3570" srcset="/wp-content/uploads/2018/05/word-image-3159.png 493w, /wp-content/uploads/2018/05/word-image-3159-300x233.png 300w" sizes="(max-width: 493px) 100vw, 493px" /></p>
<h2>2.5、关于语言问题</h2>
<p>
  对于语言包安装完成之后默认会使用对应的语言包。如果安装完成之后还没有切换可以手动指定语言具体操作如下
</p>
<p>
  ①右键进入到svn的设置界面
</p>
<p><img loading="lazy" decoding="async" width="683" height="600" src="/wp-content/uploads/2018/05/word-image-3160.png" class="wp-image-3571" srcset="/wp-content/uploads/2018/05/word-image-3160.png 683w, /wp-content/uploads/2018/05/word-image-3160-300x264.png 300w" sizes="(max-width: 683px) 100vw, 683px" /></p>
<p>
  ②设置语言
</p>
<p><img loading="lazy" decoding="async" width="771" height="582" src="/wp-content/uploads/2018/05/word-image-3161.png" class="wp-image-3572" srcset="/wp-content/uploads/2018/05/word-image-3161.png 771w, /wp-content/uploads/2018/05/word-image-3161-300x226.png 300w, /wp-content/uploads/2018/05/word-image-3161-768x580.png 768w" sizes="(max-width: 771px) 100vw, 771px" /></p>
<p>
  注意：对于目前svn的客户端跟服务端都是安装在自己的本机。需要区别后期对服务端跟客户端的操作
</p>
<h1>SVN仓库配置</h1>
<h2>3.1、什么是仓库</h2>
<p>
  对于svn作用是进行版本控制。而版本控制的实现是通过记录代码文件实现。因此svn需要保存代码文件。具体保存代码文件的目录就叫做仓库。对于svn的仓库包括的功能并不仅限于保存代码(svn仓库中保存的代码文件并不是直接保存用户编写的文件)。还支持权限等控制。
</p>
<h2>3.2、配置仓库</h2>
<p>
  ①在d:/svn目录下创建总仓库
</p>
<p><img loading="lazy" decoding="async" width="738" height="274" src="/wp-content/uploads/2018/05/word-image-3162.png" class="wp-image-3573" srcset="/wp-content/uploads/2018/05/word-image-3162.png 738w, /wp-content/uploads/2018/05/word-image-3162-300x111.png 300w" sizes="(max-width: 738px) 100vw, 738px" /></p>
<p>
  ②在web目录下建立一个测试的仓库
</p>
<p><img loading="lazy" decoding="async" width="746" height="293" src="/wp-content/uploads/2018/05/word-image-3163.png" class="wp-image-3574" srcset="/wp-content/uploads/2018/05/word-image-3163.png 746w, /wp-content/uploads/2018/05/word-image-3163-300x118.png 300w" sizes="(max-width: 746px) 100vw, 746px" /></p>
<p>
  ③运行cmd
</p>
<p><img loading="lazy" decoding="async" width="397" height="585" src="/wp-content/uploads/2018/05/word-image-3164.png" class="wp-image-3575" srcset="/wp-content/uploads/2018/05/word-image-3164.png 397w, /wp-content/uploads/2018/05/word-image-3164-204x300.png 204w" sizes="(max-width: 397px) 100vw, 397px" /></p>
<p>
  ④创建仓库
</p>
<p>
  在命令行下执行命令本质就是在操作系统的全局环境变量的目录中搜索对应同名的可执行文件
</p>
<p><img loading="lazy" decoding="async" width="877" height="480" src="/wp-content/uploads/2018/05/word-image-3165.png" class="wp-image-3576" srcset="/wp-content/uploads/2018/05/word-image-3165.png 877w, /wp-content/uploads/2018/05/word-image-3165-300x164.png 300w, /wp-content/uploads/2018/05/word-image-3165-768x420.png 768w" sizes="(max-width: 877px) 100vw, 877px" /></p>
<p>
  ⑤查看仓库目录下的文件
</p>
<p><img loading="lazy" decoding="async" width="900" height="353" src="/wp-content/uploads/2018/05/word-image-3166.png" class="wp-image-3577" srcset="/wp-content/uploads/2018/05/word-image-3166.png 900w, /wp-content/uploads/2018/05/word-image-3166-300x118.png 300w, /wp-content/uploads/2018/05/word-image-3166-768x301.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></p>
<h2>3.3、启动svn的服务端软提供服务</h2>
<h3>3.3.1、启动svn服务端</h3>
<p>
  ①使用命令启动svn服务
</p>
<p><img loading="lazy" decoding="async" width="977" height="574" src="/wp-content/uploads/2018/05/word-image-3167.png" class="wp-image-3578" srcset="/wp-content/uploads/2018/05/word-image-3167.png 977w, /wp-content/uploads/2018/05/word-image-3167-300x176.png 300w, /wp-content/uploads/2018/05/word-image-3167-768x451.png 768w" sizes="(max-width: 977px) 100vw, 977px" /></p>
<p>
  -d：指定为后台方式启动(目前存在问题并不是真正的后台方式启动)
</p>
<p>
  -r：指定仓库的地址
</p>
<p>
  注意：此处的后台方式启动存在问题。并不是真正后台方式启动因此cmd处于一个“挂起”状态。此时的cmd不要关闭。如果一旦关闭服务中断
</p>
<h3>3.3.2、使用客户端操作服务端</h3>
<p>
  ①在Apache的web跟目录下创建一个目录
</p>
<p><img loading="lazy" decoding="async" width="1061" height="259" src="/wp-content/uploads/2018/05/word-image-3168.png" class="wp-image-3579" srcset="/wp-content/uploads/2018/05/word-image-3168.png 1061w, /wp-content/uploads/2018/05/word-image-3168-300x73.png 300w, /wp-content/uploads/2018/05/word-image-3168-768x187.png 768w, /wp-content/uploads/2018/05/word-image-3168-1024x250.png 1024w" sizes="(max-width: 1061px) 100vw, 1061px" /></p>
<p>
  ②检出SVN上的项目
</p>
<p>
  先右键选择”SVN检出”
</p>
<p><img loading="lazy" decoding="async" width="420" height="449" src="/wp-content/uploads/2018/05/word-image-3169.png" class="wp-image-3580" srcset="/wp-content/uploads/2018/05/word-image-3169.png 420w, /wp-content/uploads/2018/05/word-image-3169-281x300.png 281w" sizes="(max-width: 420px) 100vw, 420px" /></p>
<p>
  然后填写相关地址即可
</p>
<p><img loading="lazy" decoding="async" width="625" height="394" src="/wp-content/uploads/2018/05/word-image-3170.png" class="wp-image-3581" srcset="/wp-content/uploads/2018/05/word-image-3170.png 625w, /wp-content/uploads/2018/05/word-image-3170-300x189.png 300w" sizes="(max-width: 625px) 100vw, 625px" /></p>
<p>
  结果如下
</p>
<p><img loading="lazy" decoding="async" width="642" height="293" src="/wp-content/uploads/2018/05/word-image-3171.png" class="wp-image-3582" srcset="/wp-content/uploads/2018/05/word-image-3171.png 642w, /wp-content/uploads/2018/05/word-image-3171-300x137.png 300w" sizes="(max-width: 642px) 100vw, 642px" /></p>
<p>
  ③查看客户端的shop目录下的文件
</p>
<p><img loading="lazy" decoding="async" width="759" height="252" src="/wp-content/uploads/2018/05/word-image-3172.png" class="wp-image-3583" srcset="/wp-content/uploads/2018/05/word-image-3172.png 759w, /wp-content/uploads/2018/05/word-image-3172-300x100.png 300w" sizes="(max-width: 759px) 100vw, 759px" /></p>
<p>
  对于上图的文件需要开启查操作系统用的看隐藏文件功能
</p>
<p>
  ④使用SVN的增加功能
</p>
<p>
  首先增加文件
</p>
<p><img loading="lazy" decoding="async" width="987" height="296" src="/wp-content/uploads/2018/05/word-image-3173.png" class="wp-image-3584" srcset="/wp-content/uploads/2018/05/word-image-3173.png 987w, /wp-content/uploads/2018/05/word-image-3173-300x90.png 300w, /wp-content/uploads/2018/05/word-image-3173-768x230.png 768w" sizes="(max-width: 987px) 100vw, 987px" /></p>
<p>
  然后增加到上传队列中(告知svn有一个文件需要记录)
</p>
<p>
  具体操作文字说明：选中文件-&gt;右键-&gt;TortoiseSVN-&gt;加入
</p>
<p><img loading="lazy" decoding="async" width="878" height="443" src="/wp-content/uploads/2018/05/word-image-3174.png" class="wp-image-3585" srcset="/wp-content/uploads/2018/05/word-image-3174.png 878w, /wp-content/uploads/2018/05/word-image-3174-300x151.png 300w, /wp-content/uploads/2018/05/word-image-3174-768x387.png 768w" sizes="(max-width: 878px) 100vw, 878px" /></p>
<p>
  对于单独的文件增加没有任何的提示。如果增加文件夹提示弹出框选中。效果如下
</p>
<p><img loading="lazy" decoding="async" width="1014" height="507" src="/wp-content/uploads/2018/05/word-image-3175.png" class="wp-image-3586" srcset="/wp-content/uploads/2018/05/word-image-3175.png 1014w, /wp-content/uploads/2018/05/word-image-3175-300x150.png 300w, /wp-content/uploads/2018/05/word-image-3175-768x384.png 768w" sizes="(max-width: 1014px) 100vw, 1014px" /></p>
<p>
  ⑤提交文件
</p>
<p><img loading="lazy" decoding="async" width="563" height="597" src="/wp-content/uploads/2018/05/word-image-3176.png" class="wp-image-3587" srcset="/wp-content/uploads/2018/05/word-image-3176.png 563w, /wp-content/uploads/2018/05/word-image-3176-283x300.png 283w" sizes="(max-width: 563px) 100vw, 563px" /></p>
<p>
  在弹出框中填写相关的内容
</p>
<p><img loading="lazy" decoding="async" width="603" height="520" src="/wp-content/uploads/2018/05/word-image-3177.png" class="wp-image-3588" srcset="/wp-content/uploads/2018/05/word-image-3177.png 603w, /wp-content/uploads/2018/05/word-image-3177-300x259.png 300w" sizes="(max-width: 603px) 100vw, 603px" /></p>
<p>
  具体结果如下
</p>
<p><img loading="lazy" decoding="async" width="646" height="292" src="/wp-content/uploads/2018/05/word-image-3178.png" class="wp-image-3589" srcset="/wp-content/uploads/2018/05/word-image-3178.png 646w, /wp-content/uploads/2018/05/word-image-3178-300x136.png 300w" sizes="(max-width: 646px) 100vw, 646px" /></p>
<p>
  产生错误的原因是因为有权限相关的控制
</p>
<p>
  ⑥解决权限问题
</p>
<p>
  修改权限配置文件
</p>
<p><img loading="lazy" decoding="async" width="1059" height="560" src="/wp-content/uploads/2018/05/word-image-3179.png" class="wp-image-3590" srcset="/wp-content/uploads/2018/05/word-image-3179.png 1059w, /wp-content/uploads/2018/05/word-image-3179-300x159.png 300w, /wp-content/uploads/2018/05/word-image-3179-768x406.png 768w, /wp-content/uploads/2018/05/word-image-3179-1024x541.png 1024w" sizes="(max-width: 1059px) 100vw, 1059px" /></p>
<p>
  然后重启svn服务
</p>
<p><img loading="lazy" decoding="async" width="626" height="174" src="/wp-content/uploads/2018/05/word-image-3180.png" class="wp-image-3591" srcset="/wp-content/uploads/2018/05/word-image-3180.png 626w, /wp-content/uploads/2018/05/word-image-3180-300x83.png 300w" sizes="(max-width: 626px) 100vw, 626px" /></p>
<p>
  ⑦再次提交代码测试
</p>
<p><img loading="lazy" decoding="async" width="604" height="508" src="/wp-content/uploads/2018/05/word-image-3181.png" class="wp-image-3592" srcset="/wp-content/uploads/2018/05/word-image-3181.png 604w, /wp-content/uploads/2018/05/word-image-3181-300x252.png 300w" sizes="(max-width: 604px) 100vw, 604px" /><br />
<img loading="lazy" decoding="async" width="645" height="299" src="/wp-content/uploads/2018/05/word-image-3182.png" class="wp-image-3593" srcset="/wp-content/uploads/2018/05/word-image-3182.png 645w, /wp-content/uploads/2018/05/word-image-3182-300x139.png 300w" sizes="(max-width: 645px) 100vw, 645px" /></p>
<p>
  关于客户端的操作总结：
</p>
<ol>
<li>
  svn检出：建立与svn服务端的连接
</li>
<li>
  Svn增加文件：告知svn服务端需要记录的内容
</li>
<li>
  Svn提交：具体将文件代码上传到svn服务端进行保存
</li>
</ol>
<p>
  关于服务端总结：
</p>
<p>
  启动服务：整个svn服务能够正常的运行
</p>
<p>
  开启匿名访问的权限：可以提交代码
</p>
<h2>3.4、svn的使用流程总结</h2>
<p><img loading="lazy" decoding="async" width="928" height="487" src="/wp-content/uploads/2018/05/word-image-3183.png" class="wp-image-3594" srcset="/wp-content/uploads/2018/05/word-image-3183.png 928w, /wp-content/uploads/2018/05/word-image-3183-300x157.png 300w, /wp-content/uploads/2018/05/word-image-3183-768x403.png 768w" sizes="(max-width: 928px) 100vw, 928px" /></p>
<ol>
<li>
  对于任何一个开发人员首先必须要要与svn服务端进行连接。也就是需要进行svn的检出操作检出只进行一次。后期需要获取最新的代码使用svn的更新功能
</li>
<li>
  如果开发者增加了信息文件。需要将文件添加到上传svn的队列中
</li>
<li>
  不论是增加新文件还是修改已有的文件，需要提交到svn上（提交一般功能实现了正常）
</li>
</ol>
<h1>SVN图标介绍</h1>
<h2>4.1、svn图标</h2>
<p>
  即svn给项目中的每个文件及目录都会增加的一些图标帮助标识项目的修改情况
</p>
<h2>4.2、查看svn中图标种类</h2>
<p>
  ①进入svn的设置
</p>
<p><img loading="lazy" decoding="async" width="491" height="550" src="/wp-content/uploads/2018/05/word-image-3184.png" class="wp-image-3595" srcset="/wp-content/uploads/2018/05/word-image-3184.png 491w, /wp-content/uploads/2018/05/word-image-3184-268x300.png 268w" sizes="(max-width: 491px) 100vw, 491px" /></p>
<p>
  ②查看图标集样式
</p>
<p><img loading="lazy" decoding="async" width="759" height="588" src="/wp-content/uploads/2018/05/word-image-3185.png" class="wp-image-3596" srcset="/wp-content/uploads/2018/05/word-image-3185.png 759w, /wp-content/uploads/2018/05/word-image-3185-300x232.png 300w" sizes="(max-width: 759px) 100vw, 759px" /></p>
<p>
  备注：SVN图标虽然支持的比较多。但是实际使用过程中能够显示的并不多。对于Windows操作系统只能支持使用最多15个小图标。如果有其他软件使用了。那么会导致图标不显示
</p>
<h2>4.3、图标介绍</h2>
<p>
  ①常规图标
</p>
<p><img loading="lazy" decoding="async" width="72" height="57" src="/wp-content/uploads/2018/05/word-image-3186.png" class="wp-image-3597" /></p>
<p>
  含义：表示当前文件或者目录与svn服务端上的保持一致
</p>
<p>
  ②修改图标
</p>
<p><img loading="lazy" decoding="async" width="79" height="53" src="/wp-content/uploads/2018/05/word-image-3187.png" class="wp-image-3598" /></p>
<p>
  含义：当前的文件跟svn服务端上的文件不一致。有修改
</p>
<p>
  ③冲突图标
</p>
<p><img loading="lazy" decoding="async" width="77" height="58" src="/wp-content/uploads/2018/05/word-image-3188.png" class="wp-image-3599" /></p>
<p>
  含义：当前的内容跟svn中的内容有冲突。跟修改图标不是一个意思。表示当前修改的文件使用的不是svn中的最新文件
</p>
<p>
  ④只读图标
</p>
<p><img loading="lazy" decoding="async" width="79" height="54" src="/wp-content/uploads/2018/05/word-image-3189.png" class="wp-image-3600" /></p>
<p>
  含义：当前文件为只读属性
</p>
<p>
  ⑤已删除
</p>
<p><img loading="lazy" decoding="async" width="75" height="50" src="/wp-content/uploads/2018/05/word-image-3190.png" class="wp-image-3601" /></p>
<p>
  含义：表示当前的文件在svn服务端已经删除
</p>
<p>
  ⑥锁定图标
</p>
<p><img loading="lazy" decoding="async" width="76" height="58" src="/wp-content/uploads/2018/05/word-image-3191.png" class="wp-image-3602" /></p>
<p>
  含义：当前文件处于锁定的状态
</p>
<p>
  ⑦增加图标
</p>
<p><img loading="lazy" decoding="async" width="70" height="55" src="/wp-content/uploads/2018/05/word-image-3192.png" class="wp-image-3603" /></p>
<p>
  含义：文件已经处于svn上传的队列
</p>
<p>
  ⑧忽略图标
</p>
<p><img loading="lazy" decoding="async" width="74" height="56" src="/wp-content/uploads/2018/05/word-image-3193.png" class="wp-image-3604" /></p>
<p>
  含义：文件处于一个忽略状态不会提交到svn服务器上
</p>
<p>
  ⑨无版本控制
</p>
<p><img loading="lazy" decoding="async" width="76" height="55" src="/wp-content/uploads/2018/05/word-image-3194.png" class="wp-image-3605" /></p>
<p>
  含义：表示当前的文件不受svn版本控制
</p>
<p>
  队列：排着队处理任务。每一个逐步执行。按照顺序进行没有插队
</p>
<h1>svn使用</h1>
<h2>5.1、忽略功能</h2>
<p>
  在项目开发的过程中部分文件可能不需要上传到SVN的服务器上。
</p>
<p>
  例如配置文件。在配置文件中往往记录数据库的配置信息。在开发时是使用的本机的信息。当项目上线如果还更新配置文件就会导致项目出现故障
</p>
<p>
  ①忽略指定的文件
</p>
<p><img loading="lazy" decoding="async" width="1036" height="452" src="/wp-content/uploads/2018/05/word-image-3195.png" class="wp-image-3606" srcset="/wp-content/uploads/2018/05/word-image-3195.png 1036w, /wp-content/uploads/2018/05/word-image-3195-300x131.png 300w, /wp-content/uploads/2018/05/word-image-3195-768x335.png 768w, /wp-content/uploads/2018/05/word-image-3195-1024x447.png 1024w" sizes="(max-width: 1036px) 100vw, 1036px" /></p>
<p>
  选中要忽略的文件右键-&gt;tortoiseSVN-&gt;增加到忽略列表-&gt;选中文件
</p>
<p>
  ②增加某类文件的忽略
</p>
<p><img loading="lazy" decoding="async" width="963" height="486" src="/wp-content/uploads/2018/05/word-image-3196.png" class="wp-image-3607" srcset="/wp-content/uploads/2018/05/word-image-3196.png 963w, /wp-content/uploads/2018/05/word-image-3196-300x151.png 300w, /wp-content/uploads/2018/05/word-image-3196-768x388.png 768w" sizes="(max-width: 963px) 100vw, 963px" /></p>
<h2>5.2、SVN的增加功能</h2>
<p>
  Svn增加可以将新的文件添加到上传到svn服务端的队列当中
</p>
<p><img loading="lazy" decoding="async" width="1051" height="406" src="/wp-content/uploads/2018/05/word-image-3197.png" class="wp-image-3608" srcset="/wp-content/uploads/2018/05/word-image-3197.png 1051w, /wp-content/uploads/2018/05/word-image-3197-300x116.png 300w, /wp-content/uploads/2018/05/word-image-3197-768x297.png 768w, /wp-content/uploads/2018/05/word-image-3197-1024x396.png 1024w" sizes="(max-width: 1051px) 100vw, 1051px" /></p>
<h2>5.3、svn的更新</h2>
<p>
  开发项目过中往往都是多人在进行开发。如果有某一个人修改代码提交了。另外一个人想要使用最新的代码就需要使用svn的更新功能
</p>
<p>
  ①先在Apache的web目录下建立shop2目录演示另外一个客户端
</p>
<p><img loading="lazy" decoding="async" width="974" height="271" src="/wp-content/uploads/2018/05/word-image-3198.png" class="wp-image-3609" srcset="/wp-content/uploads/2018/05/word-image-3198.png 974w, /wp-content/uploads/2018/05/word-image-3198-300x83.png 300w, /wp-content/uploads/2018/05/word-image-3198-768x214.png 768w" sizes="(max-width: 974px) 100vw, 974px" /></p>
<p>
  ②在shop2目录下建立文件或者修改在提交代码
</p>
<p><img loading="lazy" decoding="async" width="734" height="337" src="/wp-content/uploads/2018/05/word-image-3199.png" class="wp-image-3610" srcset="/wp-content/uploads/2018/05/word-image-3199.png 734w, /wp-content/uploads/2018/05/word-image-3199-300x138.png 300w" sizes="(max-width: 734px) 100vw, 734px" /></p>
<p>
  ③在shop2下进行提交
</p>
<p><img loading="lazy" decoding="async" width="605" height="511" src="/wp-content/uploads/2018/05/word-image-3200.png" class="wp-image-3611" srcset="/wp-content/uploads/2018/05/word-image-3200.png 605w, /wp-content/uploads/2018/05/word-image-3200-300x253.png 300w" sizes="(max-width: 605px) 100vw, 605px" /></p>
<p>
  ④在shop目录下进行更新
</p>
<p><img loading="lazy" decoding="async" width="748" height="657" src="/wp-content/uploads/2018/05/word-image-3201.png" class="wp-image-3612" srcset="/wp-content/uploads/2018/05/word-image-3201.png 748w, /wp-content/uploads/2018/05/word-image-3201-300x264.png 300w" sizes="(max-width: 748px) 100vw, 748px" /><br />
<img loading="lazy" decoding="async" width="646" height="285" src="/wp-content/uploads/2018/05/word-image-3202.png" class="wp-image-3613" srcset="/wp-content/uploads/2018/05/word-image-3202.png 646w, /wp-content/uploads/2018/05/word-image-3202-300x132.png 300w" sizes="(max-width: 646px) 100vw, 646px" /></p>
<p>
  备注在实际开发过程中客户端使用最多的就是svn的更新、svn的添加、svn的提交功能
</p>
<h2>5.4、SVN的冲突</h2>
<h3>5.4.1、冲突产生的原因</h3>
<p><img loading="lazy" decoding="async" width="900" height="479" src="/wp-content/uploads/2018/05/word-image-3203.png" class="wp-image-3614" srcset="/wp-content/uploads/2018/05/word-image-3203.png 900w, /wp-content/uploads/2018/05/word-image-3203-300x160.png 300w, /wp-content/uploads/2018/05/word-image-3203-768x409.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></p>
<p>
  针对同一个文件才有可能产生冲突
</p>
<h3>5.4.2、演示冲突问题</h3>
<p>
  ①在shop下修改index.php
</p>
<p><img loading="lazy" decoding="async" width="714" height="374" src="/wp-content/uploads/2018/05/word-image-3204.png" class="wp-image-3615" srcset="/wp-content/uploads/2018/05/word-image-3204.png 714w, /wp-content/uploads/2018/05/word-image-3204-300x157.png 300w" sizes="(max-width: 714px) 100vw, 714px" /></p>
<p>
  ②shop下提交代码
</p>
<p><img loading="lazy" decoding="async" width="652" height="316" src="/wp-content/uploads/2018/05/word-image-3205.png" class="wp-image-3616" srcset="/wp-content/uploads/2018/05/word-image-3205.png 652w, /wp-content/uploads/2018/05/word-image-3205-300x145.png 300w" sizes="(max-width: 652px) 100vw, 652px" /></p>
<p>
  ③在shop2目录下修改index.php
</p>
<p><img loading="lazy" decoding="async" width="647" height="378" src="/wp-content/uploads/2018/05/word-image-3206.png" class="wp-image-3617" srcset="/wp-content/uploads/2018/05/word-image-3206.png 647w, /wp-content/uploads/2018/05/word-image-3206-300x175.png 300w" sizes="(max-width: 647px) 100vw, 647px" /></p>
<p>
  ④在shop2下提交代码
</p>
<p><img loading="lazy" decoding="async" width="602" height="527" src="/wp-content/uploads/2018/05/word-image-3207.png" class="wp-image-3618" srcset="/wp-content/uploads/2018/05/word-image-3207.png 602w, /wp-content/uploads/2018/05/word-image-3207-300x263.png 300w" sizes="(max-width: 602px) 100vw, 602px" /></p>
<p>
  结果如下
</p>
<p><img loading="lazy" decoding="async" width="646" height="292" src="/wp-content/uploads/2018/05/word-image-3208.png" class="wp-image-3619" srcset="/wp-content/uploads/2018/05/word-image-3208.png 646w, /wp-content/uploads/2018/05/word-image-3208-300x136.png 300w" sizes="(max-width: 646px) 100vw, 646px" /></p>
<h3>5.4.3、解决冲突</h3>
<p>
  ①更新最新的代码
</p>
<p><img loading="lazy" decoding="async" width="636" height="286" src="/wp-content/uploads/2018/05/word-image-3209.png" class="wp-image-3620" srcset="/wp-content/uploads/2018/05/word-image-3209.png 636w, /wp-content/uploads/2018/05/word-image-3209-300x135.png 300w" sizes="(max-width: 636px) 100vw, 636px" /></p>
<p>
  ②查看冲突的文件及目录
</p>
<p><img loading="lazy" decoding="async" width="877" height="307" src="/wp-content/uploads/2018/05/word-image-3210.png" class="wp-image-3621" srcset="/wp-content/uploads/2018/05/word-image-3210.png 877w, /wp-content/uploads/2018/05/word-image-3210-300x105.png 300w, /wp-content/uploads/2018/05/word-image-3210-768x269.png 768w" sizes="(max-width: 877px) 100vw, 877px" /></p>
<p>
  ③处理冲突问题
</p>
<p>
  首先选中其他跟冲突相关的文件删除
</p>
<p><img loading="lazy" decoding="async" width="703" height="601" src="/wp-content/uploads/2018/05/word-image-3211.png" class="wp-image-3622" srcset="/wp-content/uploads/2018/05/word-image-3211.png 703w, /wp-content/uploads/2018/05/word-image-3211-300x256.png 300w" sizes="(max-width: 703px) 100vw, 703px" /></p>
<p>
  然后手动的修改冲突文件
</p>
<p><img loading="lazy" decoding="async" width="821" height="473" src="/wp-content/uploads/2018/05/word-image-3212.png" class="wp-image-3623" srcset="/wp-content/uploads/2018/05/word-image-3212.png 821w, /wp-content/uploads/2018/05/word-image-3212-300x173.png 300w, /wp-content/uploads/2018/05/word-image-3212-768x442.png 768w" sizes="(max-width: 821px) 100vw, 821px" /></p>
<p>
  ⑤SVN提交
</p>
<p><img loading="lazy" decoding="async" width="594" height="552" src="/wp-content/uploads/2018/05/word-image-3213.png" class="wp-image-3624" srcset="/wp-content/uploads/2018/05/word-image-3213.png 594w, /wp-content/uploads/2018/05/word-image-3213-300x279.png 300w" sizes="(max-width: 594px) 100vw, 594px" /></p>
<p>
  对于冲突最后的修改文件需要根据实际的业务情况处理。进行手动的合并操作
</p>
<h2>5.5、svn版本回退</h2>
<p>
  Svn版本的回退可以方便回退到任意的一个版本
</p>
<p>
  ①更新至版本
</p>
<p><img loading="lazy" decoding="async" width="872" height="645" src="/wp-content/uploads/2018/05/word-image-3214.png" class="wp-image-3625" srcset="/wp-content/uploads/2018/05/word-image-3214.png 872w, /wp-content/uploads/2018/05/word-image-3214-300x222.png 300w, /wp-content/uploads/2018/05/word-image-3214-768x568.png 768w" sizes="(max-width: 872px) 100vw, 872px" /></p>
<p>
  结果如下
</p>
<p><img loading="lazy" decoding="async" width="374" height="308" src="/wp-content/uploads/2018/05/word-image-3215.png" class="wp-image-3626" srcset="/wp-content/uploads/2018/05/word-image-3215.png 374w, /wp-content/uploads/2018/05/word-image-3215-300x247.png 300w" sizes="(max-width: 374px) 100vw, 374px" /></p>
<p>
  ②通过查看日志确认自己要更新的版本
</p>
<p><img loading="lazy" decoding="async" width="1234" height="451" src="/wp-content/uploads/2018/05/word-image-3216.png" class="wp-image-3627" srcset="/wp-content/uploads/2018/05/word-image-3216.png 1234w, /wp-content/uploads/2018/05/word-image-3216-300x110.png 300w, /wp-content/uploads/2018/05/word-image-3216-768x281.png 768w, /wp-content/uploads/2018/05/word-image-3216-1024x374.png 1024w" sizes="(max-width: 1234px) 100vw, 1234px" /></p>
<p>
  ③通过日志进行还原到版本
</p>
<p><img loading="lazy" decoding="async" width="810" height="537" src="/wp-content/uploads/2018/05/word-image-3217.png" class="wp-image-3628" srcset="/wp-content/uploads/2018/05/word-image-3217.png 810w, /wp-content/uploads/2018/05/word-image-3217-300x199.png 300w, /wp-content/uploads/2018/05/word-image-3217-768x509.png 768w" sizes="(max-width: 810px) 100vw, 810px" /></p>
<h2>5.6、svn多仓库配置</h2>
<p>
  在实际项目中往往项目比较多。需要多个仓库。对于仓库的创建比较容易。但是在启动svn服务的时候只能使用一个仓库。此处就需要使用到svn的多仓库配置
</p>
<p>
  ①创建oa文件夹
</p>
<p><img loading="lazy" decoding="async" width="873" height="322" src="/wp-content/uploads/2018/05/word-image-3218.png" class="wp-image-3629" srcset="/wp-content/uploads/2018/05/word-image-3218.png 873w, /wp-content/uploads/2018/05/word-image-3218-300x111.png 300w, /wp-content/uploads/2018/05/word-image-3218-768x283.png 768w" sizes="(max-width: 873px) 100vw, 873px" /></p>
<p>
  ②创建oa的仓库
</p>
<p><img loading="lazy" decoding="async" width="590" height="137" src="/wp-content/uploads/2018/05/word-image-3219.png" class="wp-image-3630" srcset="/wp-content/uploads/2018/05/word-image-3219.png 590w, /wp-content/uploads/2018/05/word-image-3219-300x70.png 300w" sizes="(max-width: 590px) 100vw, 590px" /></p>
<p>
  结果如下
</p>
<p><img loading="lazy" decoding="async" width="722" height="272" src="/wp-content/uploads/2018/05/word-image-3220.png" class="wp-image-3631" srcset="/wp-content/uploads/2018/05/word-image-3220.png 722w, /wp-content/uploads/2018/05/word-image-3220-300x113.png 300w" sizes="(max-width: 722px) 100vw, 722px" /></p>
<p>
  ③多仓库的方式启动svn服务
</p>
<p><img loading="lazy" decoding="async" width="800" height="173" src="/wp-content/uploads/2018/05/word-image-3221.png" class="wp-image-3632" srcset="/wp-content/uploads/2018/05/word-image-3221.png 800w, /wp-content/uploads/2018/05/word-image-3221-300x65.png 300w, /wp-content/uploads/2018/05/word-image-3221-768x166.png 768w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<p>
  ④客户端检出
</p>
<p>
  客户端检出时需要注意仓库的地址：
</p>
<p><img loading="lazy" decoding="async" width="669" height="516" src="/wp-content/uploads/2018/05/word-image-3222.png" class="wp-image-3633" srcset="/wp-content/uploads/2018/05/word-image-3222.png 669w, /wp-content/uploads/2018/05/word-image-3222-300x231.png 300w" sizes="(max-width: 669px) 100vw, 669px" /></p>
<h2>5.7、svn重定向</h2>
<p>
  对于svn服务端的仓库地址有修改，对于客户端想要正常使用需要更新svn服务端的地址。操作如下：
</p>
<p>
  先打开svn的重定向提示
</p>
<p><img loading="lazy" decoding="async" width="820" height="613" src="/wp-content/uploads/2018/05/word-image-3223.png" class="wp-image-3634" srcset="/wp-content/uploads/2018/05/word-image-3223.png 820w, /wp-content/uploads/2018/05/word-image-3223-300x224.png 300w, /wp-content/uploads/2018/05/word-image-3223-768x574.png 768w" sizes="(max-width: 820px) 100vw, 820px" /></p>
<p>
  填写地址
</p>
<p><img loading="lazy" decoding="async" width="453" height="179" src="/wp-content/uploads/2018/05/word-image-3224.png" class="wp-image-3635" srcset="/wp-content/uploads/2018/05/word-image-3224.png 453w, /wp-content/uploads/2018/05/word-image-3224-300x119.png 300w" sizes="(max-width: 453px) 100vw, 453px" /></p>
<p>
  在弹窗选择迁移即可
</p>
<p><img loading="lazy" decoding="async" width="507" height="343" src="/wp-content/uploads/2018/05/word-image-3225.png" class="wp-image-3636" srcset="/wp-content/uploads/2018/05/word-image-3225.png 507w, /wp-content/uploads/2018/05/word-image-3225-300x203.png 300w, /wp-content/uploads/2018/05/word-image-3225-220x150.png 220w" sizes="(max-width: 507px) 100vw, 507px" /></p>
<h2>5.8、svn权限认证</h2>
<p>
  Svn权限认证即通过用户名跟密码的校验之后才可以进行svn的相关操作。注意svn的权限认证基于仓库。
</p>
<h3>5.8.1、开启svn的权限认证</h3>
<p>
  ①进入到仓库的查看配置文件
</p>
<p><img loading="lazy" decoding="async" width="1021" height="334" src="/wp-content/uploads/2018/05/word-image-3226.png" class="wp-image-3637" srcset="/wp-content/uploads/2018/05/word-image-3226.png 1021w, /wp-content/uploads/2018/05/word-image-3226-300x98.png 300w, /wp-content/uploads/2018/05/word-image-3226-768x251.png 768w" sizes="(max-width: 1021px) 100vw, 1021px" /></p>
<p>
  ②修改svnserve.conf文件
</p>
<p><img loading="lazy" decoding="async" width="1185" height="683" src="/wp-content/uploads/2018/05/word-image-3227.png" class="wp-image-3638" srcset="/wp-content/uploads/2018/05/word-image-3227.png 1185w, /wp-content/uploads/2018/05/word-image-3227-300x173.png 300w, /wp-content/uploads/2018/05/word-image-3227-768x443.png 768w, /wp-content/uploads/2018/05/word-image-3227-1024x590.png 1024w" sizes="(max-width: 1185px) 100vw, 1185px" /></p>
<p>
  ②修改passwd文件
</p>
<p><img loading="lazy" decoding="async" width="789" height="546" src="/wp-content/uploads/2018/05/word-image-3228.png" class="wp-image-3639" srcset="/wp-content/uploads/2018/05/word-image-3228.png 789w, /wp-content/uploads/2018/05/word-image-3228-300x208.png 300w, /wp-content/uploads/2018/05/word-image-3228-768x531.png 768w" sizes="(max-width: 789px) 100vw, 789px" /></p>
<p>
  ③修改authz文件
</p>
<p><img loading="lazy" decoding="async" width="1034" height="665" src="/wp-content/uploads/2018/05/word-image-3229.png" class="wp-image-3640" srcset="/wp-content/uploads/2018/05/word-image-3229.png 1034w, /wp-content/uploads/2018/05/word-image-3229-300x193.png 300w, /wp-content/uploads/2018/05/word-image-3229-768x494.png 768w, /wp-content/uploads/2018/05/word-image-3229-1024x659.png 1024w" sizes="(max-width: 1034px) 100vw, 1034px" /></p>
<p>
  ④重新启动服务
</p>
<p><img loading="lazy" decoding="async" width="508" height="158" src="/wp-content/uploads/2018/05/word-image-3230.png" class="wp-image-3641" srcset="/wp-content/uploads/2018/05/word-image-3230.png 508w, /wp-content/uploads/2018/05/word-image-3230-300x93.png 300w" sizes="(max-width: 508px) 100vw, 508px" /></p>
<h3>5.8.2、测试使用</h3>
<p>
  ①新建立一个目录
</p>
<p><img loading="lazy" decoding="async" width="817" height="238" src="/wp-content/uploads/2018/05/word-image-3231.png" class="wp-image-3642" srcset="/wp-content/uploads/2018/05/word-image-3231.png 817w, /wp-content/uploads/2018/05/word-image-3231-300x87.png 300w, /wp-content/uploads/2018/05/word-image-3231-768x224.png 768w" sizes="(max-width: 817px) 100vw, 817px" /></p>
<p>
  ②svn检出
</p>
<p><img loading="lazy" decoding="async" width="448" height="383" src="/wp-content/uploads/2018/05/word-image-3232.png" class="wp-image-3643" srcset="/wp-content/uploads/2018/05/word-image-3232.png 448w, /wp-content/uploads/2018/05/word-image-3232-300x256.png 300w" sizes="(max-width: 448px) 100vw, 448px" /></p>
<p>
  结果如下
</p>
<p><img loading="lazy" decoding="async" width="666" height="385" src="/wp-content/uploads/2018/05/word-image-3233.png" class="wp-image-3644" srcset="/wp-content/uploads/2018/05/word-image-3233.png 666w, /wp-content/uploads/2018/05/word-image-3233-300x173.png 300w" sizes="(max-width: 666px) 100vw, 666px" /></p>
<p>
  ③增加代码然后提交
</p>
<p>
  先加入文件
</p>
<p><img loading="lazy" decoding="async" width="849" height="331" src="/wp-content/uploads/2018/05/word-image-3234.png" class="wp-image-3645" srcset="/wp-content/uploads/2018/05/word-image-3234.png 849w, /wp-content/uploads/2018/05/word-image-3234-300x117.png 300w, /wp-content/uploads/2018/05/word-image-3234-768x299.png 768w" sizes="(max-width: 849px) 100vw, 849px" /></p>
<p>
  在svn提交文件
</p>
<p><img loading="lazy" decoding="async" width="603" height="499" src="/wp-content/uploads/2018/05/word-image-3235.png" class="wp-image-3646" srcset="/wp-content/uploads/2018/05/word-image-3235.png 603w, /wp-content/uploads/2018/05/word-image-3235-300x248.png 300w" sizes="(max-width: 603px) 100vw, 603px" /></p>
<p>
  输入一个没有权限的用户密码之后提交结果如下
</p>
<p><img loading="lazy" decoding="async" width="645" height="292" src="/wp-content/uploads/2018/05/word-image-3236.png" class="wp-image-3647" srcset="/wp-content/uploads/2018/05/word-image-3236.png 645w, /wp-content/uploads/2018/05/word-image-3236-300x136.png 300w" sizes="(max-width: 645px) 100vw, 645px" /></p>
<p>
  再次重新提交文件使用有权限
</p>
<p><img loading="lazy" decoding="async" width="636" height="293" src="/wp-content/uploads/2018/05/word-image-3237.png" class="wp-image-3648" srcset="/wp-content/uploads/2018/05/word-image-3237.png 636w, /wp-content/uploads/2018/05/word-image-3237-300x138.png 300w" sizes="(max-width: 636px) 100vw, 636px" /></p>
<h1>svn设置为系统服务</h1>
<p>
  目前svn服务端每次都要保证cmd处于挂起状态才能给正常的提供服务。如果cmd一旦关闭 svn服务也就关闭比较麻烦。可以将svn加入到计算机的系统服务中并且设置为自动启动
</p>
<h2>6.1、svn设置为系统服务</h2>
<p>
  ①以超级管理员的身份启动cmd
</p>
<p><img loading="lazy" decoding="async" width="389" height="573" src="/wp-content/uploads/2018/05/word-image-3238.png" class="wp-image-3649" srcset="/wp-content/uploads/2018/05/word-image-3238.png 389w, /wp-content/uploads/2018/05/word-image-3238-204x300.png 204w" sizes="(max-width: 389px) 100vw, 389px" /></p>
<p>
  结果如下
</p>
<p><img loading="lazy" decoding="async" width="815" height="200" src="/wp-content/uploads/2018/05/word-image-3239.png" class="wp-image-3650" srcset="/wp-content/uploads/2018/05/word-image-3239.png 815w, /wp-content/uploads/2018/05/word-image-3239-300x74.png 300w, /wp-content/uploads/2018/05/word-image-3239-768x188.png 768w" sizes="(max-width: 815px) 100vw, 815px" /></p>
<p>
  ②使用命令设置服务
</p>
<p><img loading="lazy" decoding="async" width="1060" height="278" src="/wp-content/uploads/2018/05/word-image-3240.png" class="wp-image-3651" srcset="/wp-content/uploads/2018/05/word-image-3240.png 1060w, /wp-content/uploads/2018/05/word-image-3240-300x79.png 300w, /wp-content/uploads/2018/05/word-image-3240-768x201.png 768w, /wp-content/uploads/2018/05/word-image-3240-1024x269.png 1024w" sizes="(max-width: 1060px) 100vw, 1060px" /></p>
<h2>6.2、svn启动服务</h2>
<p>
  方式一：直接找到服务启动
</p>
<p><img loading="lazy" decoding="async" width="1183" height="624" src="/wp-content/uploads/2018/05/word-image-3241.png" class="wp-image-3652" srcset="/wp-content/uploads/2018/05/word-image-3241.png 1183w, /wp-content/uploads/2018/05/word-image-3241-300x158.png 300w, /wp-content/uploads/2018/05/word-image-3241-768x405.png 768w, /wp-content/uploads/2018/05/word-image-3241-1024x540.png 1024w" sizes="(max-width: 1183px) 100vw, 1183px" /><br />
<img loading="lazy" decoding="async" width="990" height="443" src="/wp-content/uploads/2018/05/word-image-3242.png" class="wp-image-3653" srcset="/wp-content/uploads/2018/05/word-image-3242.png 990w, /wp-content/uploads/2018/05/word-image-3242-300x134.png 300w, /wp-content/uploads/2018/05/word-image-3242-768x344.png 768w" sizes="(max-width: 990px) 100vw, 990px" /></p>
<p>
  结果如下
</p>
<p><img loading="lazy" decoding="async" width="943" height="246" src="/wp-content/uploads/2018/05/word-image-3243.png" class="wp-image-3654" srcset="/wp-content/uploads/2018/05/word-image-3243.png 943w, /wp-content/uploads/2018/05/word-image-3243-300x78.png 300w, /wp-content/uploads/2018/05/word-image-3243-768x200.png 768w" sizes="(max-width: 943px) 100vw, 943px" /></p>
<p>
  方式二：通过使用命令
</p>
<p><img loading="lazy" decoding="async" width="870" height="266" src="/wp-content/uploads/2018/05/word-image-3244.png" class="wp-image-3655" srcset="/wp-content/uploads/2018/05/word-image-3244.png 870w, /wp-content/uploads/2018/05/word-image-3244-300x92.png 300w, /wp-content/uploads/2018/05/word-image-3244-768x235.png 768w" sizes="(max-width: 870px) 100vw, 870px" /></p>
<h2>6.3、svn服务的卸载</h2>
<p><img loading="lazy" decoding="async" width="826" height="180" src="/wp-content/uploads/2018/05/word-image-3245.png" class="wp-image-3656" srcset="/wp-content/uploads/2018/05/word-image-3245.png 826w, /wp-content/uploads/2018/05/word-image-3245-300x65.png 300w, /wp-content/uploads/2018/05/word-image-3245-768x167.png 768w" sizes="(max-width: 826px) 100vw, 826px" /></p>
<h1>Git概述(扩展)</h1>
<h2>7.1、Git介绍</h2>
<p>
  Git是一个分布式的版本控制软件。能够帮助管理项目的代码
</p>
<h2>7.2、版本控制软件中的集中式与分布式区别</h2>
<p>
  ①svn的集中式
</p>
<p><img loading="lazy" decoding="async" width="972" height="471" src="/wp-content/uploads/2018/05/word-image-3246.png" class="wp-image-3657" srcset="/wp-content/uploads/2018/05/word-image-3246.png 972w, /wp-content/uploads/2018/05/word-image-3246-300x145.png 300w, /wp-content/uploads/2018/05/word-image-3246-768x372.png 768w" sizes="(max-width: 972px) 100vw, 972px" /></p>
<p>
  ②git的分布式
</p>
<p><img loading="lazy" decoding="async" width="1109" height="509" src="/wp-content/uploads/2018/05/word-image-3247.png" class="wp-image-3658" srcset="/wp-content/uploads/2018/05/word-image-3247.png 1109w, /wp-content/uploads/2018/05/word-image-3247-300x138.png 300w, /wp-content/uploads/2018/05/word-image-3247-768x352.png 768w, /wp-content/uploads/2018/05/word-image-3247-1024x470.png 1024w" sizes="(max-width: 1109px) 100vw, 1109px" /></p>
<h2>7.3、安装git软件</h2>
<p>
  一路下一步即可
</p>
<p>
  安装完成之后如下
</p>
<p><img loading="lazy" decoding="async" width="566" height="442" src="/wp-content/uploads/2018/05/word-image-3248.png" class="wp-image-3659" srcset="/wp-content/uploads/2018/05/word-image-3248.png 566w, /wp-content/uploads/2018/05/word-image-3248-300x234.png 300w" sizes="(max-width: 566px) 100vw, 566px" /></p>
<h2>7.4、git使用流程</h2>
<p><img loading="lazy" decoding="async" width="789" height="461" src="/wp-content/uploads/2018/05/word-image-3249.png" class="wp-image-3660" srcset="/wp-content/uploads/2018/05/word-image-3249.png 789w, /wp-content/uploads/2018/05/word-image-3249-300x175.png 300w, /wp-content/uploads/2018/05/word-image-3249-768x449.png 768w" sizes="(max-width: 789px) 100vw, 789px" /></p>
<h1>git基本使用</h1>
<p>
  ①新建git目录
</p>
<p><img loading="lazy" decoding="async" width="870" height="317" src="/wp-content/uploads/2018/05/word-image-3250.png" class="wp-image-3661" srcset="/wp-content/uploads/2018/05/word-image-3250.png 870w, /wp-content/uploads/2018/05/word-image-3250-300x109.png 300w, /wp-content/uploads/2018/05/word-image-3250-768x280.png 768w" sizes="(max-width: 870px) 100vw, 870px" /></p>
<p>
  ②进入目录使用git
</p>
<p><img loading="lazy" decoding="async" width="895" height="559" src="/wp-content/uploads/2018/05/word-image-3251.png" class="wp-image-3662" srcset="/wp-content/uploads/2018/05/word-image-3251.png 895w, /wp-content/uploads/2018/05/word-image-3251-300x187.png 300w, /wp-content/uploads/2018/05/word-image-3251-768x480.png 768w" sizes="(max-width: 895px) 100vw, 895px" /></p>
<p>
  ③初始化用户信息（此步骤可以值设置一次）
</p>
<p>
  git config &#8211;globle user.name ‘用户名’
</p>
<p>
  git config &#8211;globle user.email ‘邮箱’
</p>
<p><img loading="lazy" decoding="async" width="899" height="411" src="/wp-content/uploads/2018/05/word-image-3252.png" class="wp-image-3663" srcset="/wp-content/uploads/2018/05/word-image-3252.png 899w, /wp-content/uploads/2018/05/word-image-3252-300x137.png 300w, /wp-content/uploads/2018/05/word-image-3252-768x351.png 768w" sizes="(max-width: 899px) 100vw, 899px" /></p>
<p>
  ④使用命令初始化创库
</p>
<p><img loading="lazy" decoding="async" width="945" height="176" src="/wp-content/uploads/2018/05/word-image-3253.png" class="wp-image-3664" srcset="/wp-content/uploads/2018/05/word-image-3253.png 945w, /wp-content/uploads/2018/05/word-image-3253-300x56.png 300w, /wp-content/uploads/2018/05/word-image-3253-768x143.png 768w" sizes="(max-width: 945px) 100vw, 945px" /></p>
<p>
  查看目录下的结果
</p>
<p><img loading="lazy" decoding="async" width="724" height="193" src="/wp-content/uploads/2018/05/word-image-3254.png" class="wp-image-3665" srcset="/wp-content/uploads/2018/05/word-image-3254.png 724w, /wp-content/uploads/2018/05/word-image-3254-300x80.png 300w" sizes="(max-width: 724px) 100vw, 724px" /></p>
<p>
  ⑤开始开发创建文件
</p>
<p><img loading="lazy" decoding="async" width="796" height="235" src="/wp-content/uploads/2018/05/word-image-3255.png" class="wp-image-3666" srcset="/wp-content/uploads/2018/05/word-image-3255.png 796w, /wp-content/uploads/2018/05/word-image-3255-300x89.png 300w, /wp-content/uploads/2018/05/word-image-3255-768x227.png 768w" sizes="(max-width: 796px) 100vw, 796px" /></p>
<p>
  ⑥增加代码到暂存区
</p>
<p><img loading="lazy" decoding="async" width="821" height="170" src="/wp-content/uploads/2018/05/word-image-3256.png" class="wp-image-3667" srcset="/wp-content/uploads/2018/05/word-image-3256.png 821w, /wp-content/uploads/2018/05/word-image-3256-300x62.png 300w, /wp-content/uploads/2018/05/word-image-3256-768x159.png 768w" sizes="(max-width: 821px) 100vw, 821px" /></p>
<p>
  ⑦提交代码到仓库
</p>
<p><img loading="lazy" decoding="async" width="954" height="251" src="/wp-content/uploads/2018/05/word-image-3257.png" class="wp-image-3668" srcset="/wp-content/uploads/2018/05/word-image-3257.png 954w, /wp-content/uploads/2018/05/word-image-3257-300x79.png 300w, /wp-content/uploads/2018/05/word-image-3257-768x202.png 768w" sizes="(max-width: 954px) 100vw, 954px" /></p>
<h1>git还原</h1>
<p>
  ①增加测试文件second.php
</p>
<p><img loading="lazy" decoding="async" width="738" height="130" src="/wp-content/uploads/2018/05/word-image-3258.png" class="wp-image-3669" srcset="/wp-content/uploads/2018/05/word-image-3258.png 738w, /wp-content/uploads/2018/05/word-image-3258-300x53.png 300w" sizes="(max-width: 738px) 100vw, 738px" /></p>
<p>
  ②增加到暂存区
</p>
<p><img loading="lazy" decoding="async" width="798" height="141" src="/wp-content/uploads/2018/05/word-image-3259.png" class="wp-image-3670" srcset="/wp-content/uploads/2018/05/word-image-3259.png 798w, /wp-content/uploads/2018/05/word-image-3259-300x53.png 300w, /wp-content/uploads/2018/05/word-image-3259-768x136.png 768w" sizes="(max-width: 798px) 100vw, 798px" /></p>
<p>
  ③提交仓库
</p>
<p><img loading="lazy" decoding="async" width="860" height="233" src="/wp-content/uploads/2018/05/word-image-3260.png" class="wp-image-3671" srcset="/wp-content/uploads/2018/05/word-image-3260.png 860w, /wp-content/uploads/2018/05/word-image-3260-300x81.png 300w, /wp-content/uploads/2018/05/word-image-3260-768x208.png 768w" sizes="(max-width: 860px) 100vw, 860px" /></p>
<p>
  ④再次增加测试文件并且提交
</p>
<p><img loading="lazy" decoding="async" width="738" height="155" src="/wp-content/uploads/2018/05/word-image-3261.png" class="wp-image-3672" srcset="/wp-content/uploads/2018/05/word-image-3261.png 738w, /wp-content/uploads/2018/05/word-image-3261-300x63.png 300w" sizes="(max-width: 738px) 100vw, 738px" /><br />
<img loading="lazy" decoding="async" width="876" height="289" src="/wp-content/uploads/2018/05/word-image-3262.png" class="wp-image-3673" srcset="/wp-content/uploads/2018/05/word-image-3262.png 876w, /wp-content/uploads/2018/05/word-image-3262-300x99.png 300w, /wp-content/uploads/2018/05/word-image-3262-768x253.png 768w" sizes="(max-width: 876px) 100vw, 876px" /></p>
<p>
  ⑤再次增加测试文件并且提交
</p>
<p><img loading="lazy" decoding="async" width="705" height="177" src="/wp-content/uploads/2018/05/word-image-3263.png" class="wp-image-3674" srcset="/wp-content/uploads/2018/05/word-image-3263.png 705w, /wp-content/uploads/2018/05/word-image-3263-300x75.png 300w" sizes="(max-width: 705px) 100vw, 705px" /><br />
<img loading="lazy" decoding="async" width="837" height="289" src="/wp-content/uploads/2018/05/word-image-3264.png" class="wp-image-3675" srcset="/wp-content/uploads/2018/05/word-image-3264.png 837w, /wp-content/uploads/2018/05/word-image-3264-300x104.png 300w, /wp-content/uploads/2018/05/word-image-3264-768x265.png 768w" sizes="(max-width: 837px) 100vw, 837px" /></p>
<p>
  ⑥查看版本
</p>
<p><img loading="lazy" decoding="async" width="888" height="359" src="/wp-content/uploads/2018/05/word-image-3265.png" class="wp-image-3676" srcset="/wp-content/uploads/2018/05/word-image-3265.png 888w, /wp-content/uploads/2018/05/word-image-3265-300x121.png 300w, /wp-content/uploads/2018/05/word-image-3265-768x310.png 768w" sizes="(max-width: 888px) 100vw, 888px" /></p>
<p>
  ⑦使用head更新
</p>
<p><img loading="lazy" decoding="async" width="912" height="311" src="/wp-content/uploads/2018/05/word-image-3266.png" class="wp-image-3677" srcset="/wp-content/uploads/2018/05/word-image-3266.png 912w, /wp-content/uploads/2018/05/word-image-3266-300x102.png 300w, /wp-content/uploads/2018/05/word-image-3266-768x262.png 768w" sizes="(max-width: 912px) 100vw, 912px" /></p>
<p>
  更新到上上个版本
</p>
<p><img loading="lazy" decoding="async" width="846" height="415" src="/wp-content/uploads/2018/05/word-image-3267.png" class="wp-image-3678" srcset="/wp-content/uploads/2018/05/word-image-3267.png 846w, /wp-content/uploads/2018/05/word-image-3267-300x147.png 300w, /wp-content/uploads/2018/05/word-image-3267-768x377.png 768w" sizes="(max-width: 846px) 100vw, 846px" /></p>
<p>
  可以查看结果
</p>
<p><img loading="lazy" decoding="async" width="805" height="187" src="/wp-content/uploads/2018/05/word-image-3268.png" class="wp-image-3679" srcset="/wp-content/uploads/2018/05/word-image-3268.png 805w, /wp-content/uploads/2018/05/word-image-3268-300x70.png 300w, /wp-content/uploads/2018/05/word-image-3268-768x178.png 768w" sizes="(max-width: 805px) 100vw, 805px" /></p>
<h1>Git与github</h1>
<h2>10.1、git与GitHub的关系</h2>
<p>
  Git不等价于github
</p>
<p>
  Git是版本控制软件
</p>
<p>
  Github是基于git基础上提供的一个代码的托管平台(可以将代码推送给github或者从GitHub上下载最新的代码)
</p>
<p>
  在国内使用比较多的用码云(跟github一模一样)
</p>
<h2>10.2、码云使用</h2>
<p>
  ①注册账号
</p>
<p>
  ②登录
</p>
<p>
  ③创建项目
</p>
<p><img loading="lazy" decoding="async" width="1079" height="136" src="/wp-content/uploads/2018/05/word-image-3269.png" class="wp-image-3680" srcset="/wp-content/uploads/2018/05/word-image-3269.png 1079w, /wp-content/uploads/2018/05/word-image-3269-300x38.png 300w, /wp-content/uploads/2018/05/word-image-3269-768x97.png 768w, /wp-content/uploads/2018/05/word-image-3269-1024x129.png 1024w" sizes="(max-width: 1079px) 100vw, 1079px" /></p>
<p>
  填写表单提交即可
</p>
<p><img loading="lazy" decoding="async" width="801" height="600" src="/wp-content/uploads/2018/05/word-image-3270.png" class="wp-image-3681" srcset="/wp-content/uploads/2018/05/word-image-3270.png 801w, /wp-content/uploads/2018/05/word-image-3270-300x225.png 300w, /wp-content/uploads/2018/05/word-image-3270-768x575.png 768w" sizes="(max-width: 801px) 100vw, 801px" /></p>
<p>
  ④查看地址
</p>
<p><img loading="lazy" decoding="async" width="1174" height="328" src="/wp-content/uploads/2018/05/word-image-3271.png" class="wp-image-3682" srcset="/wp-content/uploads/2018/05/word-image-3271.png 1174w, /wp-content/uploads/2018/05/word-image-3271-300x84.png 300w, /wp-content/uploads/2018/05/word-image-3271-768x215.png 768w, /wp-content/uploads/2018/05/word-image-3271-1024x286.png 1024w" sizes="(max-width: 1174px) 100vw, 1174px" /></p>
<p>
  ⑤获取线上的代码
</p>
<p><img loading="lazy" decoding="async" width="881" height="396" src="/wp-content/uploads/2018/05/word-image-3272.png" class="wp-image-3683" srcset="/wp-content/uploads/2018/05/word-image-3272.png 881w, /wp-content/uploads/2018/05/word-image-3272-300x135.png 300w, /wp-content/uploads/2018/05/word-image-3272-768x345.png 768w" sizes="(max-width: 881px) 100vw, 881px" /></p>
<p>
  ⑥创建文件
</p>
<p><img loading="lazy" decoding="async" width="730" height="317" src="/wp-content/uploads/2018/05/word-image-3273.png" class="wp-image-3684" srcset="/wp-content/uploads/2018/05/word-image-3273.png 730w, /wp-content/uploads/2018/05/word-image-3273-300x130.png 300w" sizes="(max-width: 730px) 100vw, 730px" /></p>
<p>
  ⑦增加代码到暂存区然后提交
</p>
<p><img loading="lazy" decoding="async" width="893" height="325" src="/wp-content/uploads/2018/05/word-image-3274.png" class="wp-image-3685" srcset="/wp-content/uploads/2018/05/word-image-3274.png 893w, /wp-content/uploads/2018/05/word-image-3274-300x109.png 300w, /wp-content/uploads/2018/05/word-image-3274-768x280.png 768w" sizes="(max-width: 893px) 100vw, 893px" /></p>
<p>
  ⑧推送代码给码云
</p>
<p><img loading="lazy" decoding="async" width="935" height="300" src="/wp-content/uploads/2018/05/word-image-3275.png" class="wp-image-3686" srcset="/wp-content/uploads/2018/05/word-image-3275.png 935w, /wp-content/uploads/2018/05/word-image-3275-300x96.png 300w, /wp-content/uploads/2018/05/word-image-3275-768x246.png 768w" sizes="(max-width: 935px) 100vw, 935px" /><br />
<img loading="lazy" decoding="async" width="381" height="190" src="/wp-content/uploads/2018/05/word-image-3276.png" class="wp-image-3687" srcset="/wp-content/uploads/2018/05/word-image-3276.png 381w, /wp-content/uploads/2018/05/word-image-3276-300x150.png 300w" sizes="(max-width: 381px) 100vw, 381px" /></p>
<p>
  在推送的过程中需要自己的有权限。如果推送的项目没有把自己的账户加入为开发者是不能正常推送的
</p>
<h1>git中的分支</h1>
<p>
  ①创建分支
</p>
<p><img loading="lazy" decoding="async" width="897" height="373" src="/wp-content/uploads/2018/05/word-image-3277.png" class="wp-image-3688" srcset="/wp-content/uploads/2018/05/word-image-3277.png 897w, /wp-content/uploads/2018/05/word-image-3277-300x125.png 300w, /wp-content/uploads/2018/05/word-image-3277-768x319.png 768w" sizes="(max-width: 897px) 100vw, 897px" /></p>
<p>
  ②切换分支
</p>
<p><img loading="lazy" decoding="async" width="837" height="189" src="/wp-content/uploads/2018/05/word-image-3278.png" class="wp-image-3689" srcset="/wp-content/uploads/2018/05/word-image-3278.png 837w, /wp-content/uploads/2018/05/word-image-3278-300x68.png 300w, /wp-content/uploads/2018/05/word-image-3278-768x173.png 768w" sizes="(max-width: 837px) 100vw, 837px" /></p>
<p>
  ③在分支下创建文件
</p>
<p><img loading="lazy" decoding="async" width="898" height="224" src="/wp-content/uploads/2018/05/word-image-3279.png" class="wp-image-3690" srcset="/wp-content/uploads/2018/05/word-image-3279.png 898w, /wp-content/uploads/2018/05/word-image-3279-300x75.png 300w, /wp-content/uploads/2018/05/word-image-3279-768x192.png 768w" sizes="(max-width: 898px) 100vw, 898px" /></p>
<p>
  ④分支中提交代码
</p>
<p><img loading="lazy" decoding="async" width="886" height="453" src="/wp-content/uploads/2018/05/word-image-3280.png" class="wp-image-3691" srcset="/wp-content/uploads/2018/05/word-image-3280.png 886w, /wp-content/uploads/2018/05/word-image-3280-300x153.png 300w, /wp-content/uploads/2018/05/word-image-3280-768x393.png 768w" sizes="(max-width: 886px) 100vw, 886px" /></p>
<p>
  ⑤切换到主分支
</p>
<p><img loading="lazy" decoding="async" width="901" height="318" src="/wp-content/uploads/2018/05/word-image-3281.png" class="wp-image-3692" srcset="/wp-content/uploads/2018/05/word-image-3281.png 901w, /wp-content/uploads/2018/05/word-image-3281-300x106.png 300w, /wp-content/uploads/2018/05/word-image-3281-768x271.png 768w" sizes="(max-width: 901px) 100vw, 901px" /></p>
<p>
  ⑥分支的合并
</p>
<p><img loading="lazy" decoding="async" width="920" height="425" src="/wp-content/uploads/2018/05/word-image-3282.png" class="wp-image-3693" srcset="/wp-content/uploads/2018/05/word-image-3282.png 920w, /wp-content/uploads/2018/05/word-image-3282-300x139.png 300w, /wp-content/uploads/2018/05/word-image-3282-768x355.png 768w" sizes="(max-width: 920px) 100vw, 920px" /></p>
<p>
  合并过程中有冲突手动解决冲突问题
</p>
<p>
  备注：
</p>
<p>
  软件提供服务。一直会存在一个进程在长期执行对于此进程就叫守护进程</p>
]]></content:encoded>
					
					<wfw:commentRss>/%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6/3551.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GitHub（一） 配置、使用</title>
		<link>/%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6/3478.html</link>
					<comments>/%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6/3478.html#respond</comments>
		
		<dc:creator><![CDATA[Mr.Lee]]></dc:creator>
		<pubDate>Sat, 19 May 2018 10:02:19 +0000</pubDate>
				<category><![CDATA[GIT]]></category>
		<category><![CDATA[版本控制]]></category>
		<category><![CDATA[Github]]></category>
		<category><![CDATA[使用]]></category>
		<category><![CDATA[配置]]></category>
		<guid isPermaLink="false">/?p=3478</guid>

					<description><![CDATA[一、了解Git和Github 1、什么是Git Git是一个免费、开源的版本控制软件 问：什么是版本控制软件  [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>一、了解Git和Github</h1>
<h2>1、什么是Git</h2>
<p>Git是一个免费、开源的版本控制软件</p>
<p>问：什么是版本控制软件</p>
<p>答：版本控制是一种记录一个或若干个文件内容变化，以便将来查阅特定版本修订情况得系统。</p>
<h2>2、什么是Github</h2>
<p>Github是全球最大的社交编程及代码托管网站（https://github.com/）</p>
<h2>3、Github和Git是什么关系</h2>
<p>Git是版本控制软件</p>
<p>Github是项目代码托管的平台，借助git来管理项目代码</p>
<h2>4、为什么学习Github</h2>
<ul>
<li>学习优秀的开源项目</li>
<li>关注行业前辈了解最新的行业动态</li>
<li>如：</li>
<li>PHP 鸟哥，现任链家网技术副总裁兼总架构师 https://github.com/laruence</li>
<li>国内流行的PHP开发框架（thinkphp）：https://github.com/top-think/think</li>
<li>全球流行的PHP框架（laravel）：https://github.com/laravel/laravel</li>
<li>PHP编码规范（FIG-PHP）：https://www.gitbook.com/book/jifei/php-fig-standards/details</li>
</ul>
<h1>二、使用Github</h1>
<h2>1、目的</h2>
<ul>
<li>借助github托管项目代码</li>
<li>借助github托管composer软件包</li>
</ul>
<h2>2、注册github账号</h2>
<p><img loading="lazy" decoding="async" width="1234" height="601" class="wp-image-3479" src="/wp-content/uploads/2018/05/word-image-3072.png" srcset="/wp-content/uploads/2018/05/word-image-3072.png 1234w, /wp-content/uploads/2018/05/word-image-3072-300x146.png 300w, /wp-content/uploads/2018/05/word-image-3072-768x374.png 768w, /wp-content/uploads/2018/05/word-image-3072-1024x499.png 1024w" sizes="(max-width: 1234px) 100vw, 1234px" /><br />
<img loading="lazy" decoding="async" width="859" height="680" class="wp-image-3480" src="/wp-content/uploads/2018/05/word-image-3073.png" srcset="/wp-content/uploads/2018/05/word-image-3073.png 859w, /wp-content/uploads/2018/05/word-image-3073-300x237.png 300w, /wp-content/uploads/2018/05/word-image-3073-768x608.png 768w" sizes="(max-width: 859px) 100vw, 859px" /><br />
<img loading="lazy" decoding="async" width="730" height="500" class="wp-image-3481" src="/wp-content/uploads/2018/05/word-image-3074.png" srcset="/wp-content/uploads/2018/05/word-image-3074.png 730w, /wp-content/uploads/2018/05/word-image-3074-300x205.png 300w, /wp-content/uploads/2018/05/word-image-3074-220x150.png 220w" sizes="(max-width: 730px) 100vw, 730px" /><br />
<img loading="lazy" decoding="async" width="758" height="522" class="wp-image-3483" src="/wp-content/uploads/2018/05/word-image-3075.png" srcset="/wp-content/uploads/2018/05/word-image-3075.png 758w, /wp-content/uploads/2018/05/word-image-3075-300x207.png 300w" sizes="(max-width: 758px) 100vw, 758px" /><br />
<img loading="lazy" decoding="async" width="1011" height="590" class="wp-image-3484" src="/wp-content/uploads/2018/05/word-image-3076.png" srcset="/wp-content/uploads/2018/05/word-image-3076.png 1011w, /wp-content/uploads/2018/05/word-image-3076-300x175.png 300w, /wp-content/uploads/2018/05/word-image-3076-768x448.png 768w" sizes="(max-width: 1011px) 100vw, 1011px" /></p>
<h2>3、创建仓库</h2>
<h3>1）说明</h3>
<ul>
<li>一个github仓库存放一个项目</li>
<li>一般使用git软件管理github仓库</li>
</ul>
<h3>2）创建仓库</h3>
<p><img loading="lazy" decoding="async" width="1120" height="562" class="wp-image-3485" src="/wp-content/uploads/2018/05/word-image-3077.png" srcset="/wp-content/uploads/2018/05/word-image-3077.png 1120w, /wp-content/uploads/2018/05/word-image-3077-300x151.png 300w, /wp-content/uploads/2018/05/word-image-3077-768x385.png 768w, /wp-content/uploads/2018/05/word-image-3077-1024x514.png 1024w" sizes="(max-width: 1120px) 100vw, 1120px" /><br />
<img loading="lazy" decoding="async" width="893" height="607" class="wp-image-3486" src="/wp-content/uploads/2018/05/word-image-3078.png" srcset="/wp-content/uploads/2018/05/word-image-3078.png 893w, /wp-content/uploads/2018/05/word-image-3078-300x204.png 300w, /wp-content/uploads/2018/05/word-image-3078-768x522.png 768w, /wp-content/uploads/2018/05/word-image-3078-220x150.png 220w" sizes="(max-width: 893px) 100vw, 893px" /><br />
<img loading="lazy" decoding="async" width="969" height="587" class="wp-image-3487" src="/wp-content/uploads/2018/05/word-image-3079.png" srcset="/wp-content/uploads/2018/05/word-image-3079.png 969w, /wp-content/uploads/2018/05/word-image-3079-300x182.png 300w, /wp-content/uploads/2018/05/word-image-3079-768x465.png 768w" sizes="(max-width: 969px) 100vw, 969px" /></p>
<p>脚下留心</p>
<p><img loading="lazy" decoding="async" width="802" height="478" class="wp-image-3488" src="/wp-content/uploads/2018/05/word-image-3080.png" srcset="/wp-content/uploads/2018/05/word-image-3080.png 802w, /wp-content/uploads/2018/05/word-image-3080-300x179.png 300w, /wp-content/uploads/2018/05/word-image-3080-768x458.png 768w" sizes="(max-width: 802px) 100vw, 802px" /><br />
<img loading="lazy" decoding="async" width="757" height="390" class="wp-image-3489" src="/wp-content/uploads/2018/05/word-image-3081.png" srcset="/wp-content/uploads/2018/05/word-image-3081.png 757w, /wp-content/uploads/2018/05/word-image-3081-300x155.png 300w" sizes="(max-width: 757px) 100vw, 757px" /></p>
<h2>仓库管理</h2>
<h3>︴仓库主页说明【★★★★★★★★★★★★★★】</h3>
<p><img loading="lazy" decoding="async" width="999" height="631" class="wp-image-3490" src="/wp-content/uploads/2018/05/word-image-3082.png" srcset="/wp-content/uploads/2018/05/word-image-3082.png 999w, /wp-content/uploads/2018/05/word-image-3082-300x189.png 300w, /wp-content/uploads/2018/05/word-image-3082-768x485.png 768w" sizes="(max-width: 999px) 100vw, 999px" /></p>
<h3>1）新建文件</h3>
<p><img loading="lazy" decoding="async" width="946" height="443" class="wp-image-3491" src="/wp-content/uploads/2018/05/word-image-3083.png" srcset="/wp-content/uploads/2018/05/word-image-3083.png 946w, /wp-content/uploads/2018/05/word-image-3083-300x140.png 300w, /wp-content/uploads/2018/05/word-image-3083-768x360.png 768w" sizes="(max-width: 946px) 100vw, 946px" /><br />
<img loading="lazy" decoding="async" width="664" height="608" class="wp-image-3492" src="/wp-content/uploads/2018/05/word-image-3084.png" srcset="/wp-content/uploads/2018/05/word-image-3084.png 664w, /wp-content/uploads/2018/05/word-image-3084-300x275.png 300w" sizes="(max-width: 664px) 100vw, 664px" /><br />
<img loading="lazy" decoding="async" width="795" height="398" class="wp-image-3493" src="/wp-content/uploads/2018/05/word-image-3085.png" srcset="/wp-content/uploads/2018/05/word-image-3085.png 795w, /wp-content/uploads/2018/05/word-image-3085-300x150.png 300w, /wp-content/uploads/2018/05/word-image-3085-768x384.png 768w" sizes="(max-width: 795px) 100vw, 795px" /></p>
<h3>2）编辑文件</h3>
<p><img loading="lazy" decoding="async" width="826" height="407" class="wp-image-3494" src="/wp-content/uploads/2018/05/word-image-3086.png" srcset="/wp-content/uploads/2018/05/word-image-3086.png 826w, /wp-content/uploads/2018/05/word-image-3086-300x148.png 300w, /wp-content/uploads/2018/05/word-image-3086-768x378.png 768w" sizes="(max-width: 826px) 100vw, 826px" /><br />
<img loading="lazy" decoding="async" width="860" height="477" class="wp-image-3495" src="/wp-content/uploads/2018/05/word-image-3087.png" srcset="/wp-content/uploads/2018/05/word-image-3087.png 860w, /wp-content/uploads/2018/05/word-image-3087-300x166.png 300w, /wp-content/uploads/2018/05/word-image-3087-768x426.png 768w" sizes="(max-width: 860px) 100vw, 860px" /><br />
<img loading="lazy" decoding="async" width="480" height="506" class="wp-image-3496" src="/wp-content/uploads/2018/05/word-image-3088.png" srcset="/wp-content/uploads/2018/05/word-image-3088.png 480w, /wp-content/uploads/2018/05/word-image-3088-285x300.png 285w" sizes="(max-width: 480px) 100vw, 480px" /><br />
<img loading="lazy" decoding="async" width="923" height="497" class="wp-image-3497" src="/wp-content/uploads/2018/05/word-image-3089.png" srcset="/wp-content/uploads/2018/05/word-image-3089.png 923w, /wp-content/uploads/2018/05/word-image-3089-300x162.png 300w, /wp-content/uploads/2018/05/word-image-3089-768x414.png 768w" sizes="(max-width: 923px) 100vw, 923px" /></p>
<h3>3）删除文件</h3>
<p><img loading="lazy" decoding="async" width="550" height="314" class="wp-image-3498" src="/wp-content/uploads/2018/05/word-image-3090.png" srcset="/wp-content/uploads/2018/05/word-image-3090.png 550w, /wp-content/uploads/2018/05/word-image-3090-300x171.png 300w" sizes="(max-width: 550px) 100vw, 550px" /><br />
<img loading="lazy" decoding="async" width="1014" height="394" class="wp-image-3499" src="/wp-content/uploads/2018/05/word-image-3091.png" srcset="/wp-content/uploads/2018/05/word-image-3091.png 1014w, /wp-content/uploads/2018/05/word-image-3091-300x117.png 300w, /wp-content/uploads/2018/05/word-image-3091-768x298.png 768w" sizes="(max-width: 1014px) 100vw, 1014px" /><br />
<img loading="lazy" decoding="async" width="884" height="603" class="wp-image-3500" src="/wp-content/uploads/2018/05/word-image-3092.png" srcset="/wp-content/uploads/2018/05/word-image-3092.png 884w, /wp-content/uploads/2018/05/word-image-3092-300x205.png 300w, /wp-content/uploads/2018/05/word-image-3092-768x524.png 768w, /wp-content/uploads/2018/05/word-image-3092-220x150.png 220w" sizes="(max-width: 884px) 100vw, 884px" /></p>
<p>︴思考被删除文件如何查看信息</p>
<p>答：通过点击仓库主页的commits</p>
<p><img loading="lazy" decoding="async" width="549" height="407" class="wp-image-3501" src="/wp-content/uploads/2018/05/word-image-3093.png" srcset="/wp-content/uploads/2018/05/word-image-3093.png 549w, /wp-content/uploads/2018/05/word-image-3093-300x222.png 300w" sizes="(max-width: 549px) 100vw, 549px" /><br />
<img loading="lazy" decoding="async" width="980" height="459" class="wp-image-3502" src="/wp-content/uploads/2018/05/word-image-3094.png" srcset="/wp-content/uploads/2018/05/word-image-3094.png 980w, /wp-content/uploads/2018/05/word-image-3094-300x141.png 300w, /wp-content/uploads/2018/05/word-image-3094-768x360.png 768w" sizes="(max-width: 980px) 100vw, 980px" /></p>
<h3>4）上传文件</h3>
<p><img loading="lazy" decoding="async" width="996" height="575" class="wp-image-3503" src="/wp-content/uploads/2018/05/word-image-3095.png" srcset="/wp-content/uploads/2018/05/word-image-3095.png 996w, /wp-content/uploads/2018/05/word-image-3095-300x173.png 300w, /wp-content/uploads/2018/05/word-image-3095-768x443.png 768w" sizes="(max-width: 996px) 100vw, 996px" /><br />
<img loading="lazy" decoding="async" width="906" height="585" class="wp-image-3504" src="/wp-content/uploads/2018/05/word-image-3096.png" srcset="/wp-content/uploads/2018/05/word-image-3096.png 906w, /wp-content/uploads/2018/05/word-image-3096-300x194.png 300w, /wp-content/uploads/2018/05/word-image-3096-768x496.png 768w" sizes="(max-width: 906px) 100vw, 906px" /><br />
<img loading="lazy" decoding="async" width="977" height="576" class="wp-image-3505" src="/wp-content/uploads/2018/05/word-image-3097.png" srcset="/wp-content/uploads/2018/05/word-image-3097.png 977w, /wp-content/uploads/2018/05/word-image-3097-300x177.png 300w, /wp-content/uploads/2018/05/word-image-3097-768x453.png 768w" sizes="(max-width: 977px) 100vw, 977px" /></p>
<h3>5）下载/检出项目</h3>
<p><img loading="lazy" decoding="async" width="1142" height="495" class="wp-image-3506" src="/wp-content/uploads/2018/05/word-image-3098.png" srcset="/wp-content/uploads/2018/05/word-image-3098.png 1142w, /wp-content/uploads/2018/05/word-image-3098-300x130.png 300w, /wp-content/uploads/2018/05/word-image-3098-768x333.png 768w, /wp-content/uploads/2018/05/word-image-3098-1024x444.png 1024w" sizes="(max-width: 1142px) 100vw, 1142px" /><br />
<img loading="lazy" decoding="async" width="1045" height="561" class="wp-image-3507" src="/wp-content/uploads/2018/05/word-image-3099.png" srcset="/wp-content/uploads/2018/05/word-image-3099.png 1045w, /wp-content/uploads/2018/05/word-image-3099-300x161.png 300w, /wp-content/uploads/2018/05/word-image-3099-768x412.png 768w, /wp-content/uploads/2018/05/word-image-3099-1024x550.png 1024w" sizes="(max-width: 1045px) 100vw, 1045px" /><br />
<img loading="lazy" decoding="async" width="1088" height="354" class="wp-image-3508" src="/wp-content/uploads/2018/05/word-image-3100.png" srcset="/wp-content/uploads/2018/05/word-image-3100.png 1088w, /wp-content/uploads/2018/05/word-image-3100-300x98.png 300w, /wp-content/uploads/2018/05/word-image-3100-768x250.png 768w, /wp-content/uploads/2018/05/word-image-3100-1024x333.png 1024w" sizes="(max-width: 1088px) 100vw, 1088px" /></p>
<h2>5、Github页面介绍</h2>
<h3>1）Github主页</h3>
<p><img loading="lazy" decoding="async" width="1111" height="683" class="wp-image-3509" src="/wp-content/uploads/2018/05/word-image-3101.png" srcset="/wp-content/uploads/2018/05/word-image-3101.png 1111w, /wp-content/uploads/2018/05/word-image-3101-300x184.png 300w, /wp-content/uploads/2018/05/word-image-3101-768x472.png 768w, /wp-content/uploads/2018/05/word-image-3101-1024x630.png 1024w" sizes="(max-width: 1111px) 100vw, 1111px" /></p>
<h3>2）个人主页</h3>
<p><img loading="lazy" decoding="async" width="980" height="426" class="wp-image-3510" src="/wp-content/uploads/2018/05/word-image-3102.png" srcset="/wp-content/uploads/2018/05/word-image-3102.png 980w, /wp-content/uploads/2018/05/word-image-3102-300x130.png 300w, /wp-content/uploads/2018/05/word-image-3102-768x334.png 768w" sizes="(max-width: 980px) 100vw, 980px" /><br />
<img loading="lazy" decoding="async" width="1130" height="602" class="wp-image-3511" src="/wp-content/uploads/2018/05/word-image-3103.png" srcset="/wp-content/uploads/2018/05/word-image-3103.png 1130w, /wp-content/uploads/2018/05/word-image-3103-300x160.png 300w, /wp-content/uploads/2018/05/word-image-3103-768x409.png 768w, /wp-content/uploads/2018/05/word-image-3103-1024x546.png 1024w" sizes="(max-width: 1130px) 100vw, 1130px" /></p>
<h3>3）收藏（Star）</h3>
<ul>
<li>情景：看到不错的开源项目，值得学习，但是今天业务繁忙，先收藏后期学习</li>
<li>操作：进入仓库主页 -&gt; 点击右上角图标（小星星 stat）即可</li>
</ul>
<p><img loading="lazy" decoding="async" width="1113" height="508" class="wp-image-3512" src="/wp-content/uploads/2018/05/word-image-3104.png" srcset="/wp-content/uploads/2018/05/word-image-3104.png 1113w, /wp-content/uploads/2018/05/word-image-3104-300x137.png 300w, /wp-content/uploads/2018/05/word-image-3104-768x351.png 768w, /wp-content/uploads/2018/05/word-image-3104-1024x467.png 1024w" sizes="(max-width: 1113px) 100vw, 1113px" /><br />
<img loading="lazy" decoding="async" width="1061" height="314" class="wp-image-3513" src="/wp-content/uploads/2018/05/word-image-3105.png" srcset="/wp-content/uploads/2018/05/word-image-3105.png 1061w, /wp-content/uploads/2018/05/word-image-3105-300x89.png 300w, /wp-content/uploads/2018/05/word-image-3105-768x227.png 768w, /wp-content/uploads/2018/05/word-image-3105-1024x303.png 1024w" sizes="(max-width: 1061px) 100vw, 1061px" /><br />
<img loading="lazy" decoding="async" width="1077" height="412" class="wp-image-3514" src="/wp-content/uploads/2018/05/word-image-3106.png" srcset="/wp-content/uploads/2018/05/word-image-3106.png 1077w, /wp-content/uploads/2018/05/word-image-3106-300x115.png 300w, /wp-content/uploads/2018/05/word-image-3106-768x294.png 768w, /wp-content/uploads/2018/05/word-image-3106-1024x392.png 1024w" sizes="(max-width: 1077px) 100vw, 1077px" /><br />
<img loading="lazy" decoding="async" width="1131" height="608" class="wp-image-3515" src="/wp-content/uploads/2018/05/word-image-3107.png" srcset="/wp-content/uploads/2018/05/word-image-3107.png 1131w, /wp-content/uploads/2018/05/word-image-3107-300x161.png 300w, /wp-content/uploads/2018/05/word-image-3107-768x413.png 768w, /wp-content/uploads/2018/05/word-image-3107-1024x550.png 1024w" sizes="(max-width: 1131px) 100vw, 1131px" /></p>
<h3>4）关注（Watch）</h3>
<ul>
<li>情景：想要了解某项目实时动态，则使用关注</li>
</ul>
<p>问：关注和收藏的区别</p>
<p>答：关注后会在github主页看到仓库动态、收藏是在个人主页查看仅收藏无动态</p>
<p><img loading="lazy" decoding="async" width="1065" height="256" class="wp-image-3516" src="/wp-content/uploads/2018/05/word-image-3108.png" srcset="/wp-content/uploads/2018/05/word-image-3108.png 1065w, /wp-content/uploads/2018/05/word-image-3108-300x72.png 300w, /wp-content/uploads/2018/05/word-image-3108-768x185.png 768w, /wp-content/uploads/2018/05/word-image-3108-1024x246.png 1024w" sizes="(max-width: 1065px) 100vw, 1065px" /></p>
<h3>5）复制克隆项目（Fork）</h3>
<ul>
<li>情景：张三在github上看到一个项目不错，并且向加入开发，则可以fork</li>
</ul>
<p>fork操作就是把别人项目的代码完成克隆一份让自己也拥有一个一模一样的仓库</p>
<p><img loading="lazy" decoding="async" width="1049" height="559" class="wp-image-3517" src="/wp-content/uploads/2018/05/word-image-3109.png" srcset="/wp-content/uploads/2018/05/word-image-3109.png 1049w, /wp-content/uploads/2018/05/word-image-3109-300x160.png 300w, /wp-content/uploads/2018/05/word-image-3109-768x409.png 768w, /wp-content/uploads/2018/05/word-image-3109-1024x546.png 1024w" sizes="(max-width: 1049px) 100vw, 1049px" /><br />
<img loading="lazy" decoding="async" width="1026" height="597" class="wp-image-3518" src="/wp-content/uploads/2018/05/word-image-3110.png" srcset="/wp-content/uploads/2018/05/word-image-3110.png 1026w, /wp-content/uploads/2018/05/word-image-3110-300x175.png 300w, /wp-content/uploads/2018/05/word-image-3110-768x447.png 768w, /wp-content/uploads/2018/05/word-image-3110-1024x596.png 1024w" sizes="(max-width: 1026px) 100vw, 1026px" /><br />
<img loading="lazy" decoding="async" width="918" height="385" class="wp-image-3519" src="/wp-content/uploads/2018/05/word-image-3111.png" srcset="/wp-content/uploads/2018/05/word-image-3111.png 918w, /wp-content/uploads/2018/05/word-image-3111-300x126.png 300w, /wp-content/uploads/2018/05/word-image-3111-768x322.png 768w" sizes="(max-width: 918px) 100vw, 918px" /></p>
<h2>6、开源项目贡献流程</h2>
<h3>新建issues</h3>
<p>提交使用问题或者建议或者想法等</p>
<h3>Pull Request</h3>
<p>步骤：</p>
<ol>
<li>fork项目</li>
<li>修改自己仓库的项目代码</li>
<li>新建pull request （合并请求）</li>
<li>等待作者审核</li>
</ol>
<h1>三、安装Git</h1>
<h2>1、目的</h2>
<p>通过git管理github托管的项目代码</p>
<h2>2、下载安装</h2>
<h3>GIt官网下载：<a href="/goto/3up3" rel="nofollow">https://www.git-scm.com/download/win</a></h3>
<h3>2）双击安装</h3>
<p><img loading="lazy" decoding="async" width="413" height="163" class="wp-image-3520" src="/wp-content/uploads/2018/05/word-image-3112.png" srcset="/wp-content/uploads/2018/05/word-image-3112.png 413w, /wp-content/uploads/2018/05/word-image-3112-300x118.png 300w" sizes="(max-width: 413px) 100vw, 413px" /><br />
<img loading="lazy" decoding="async" width="830" height="447" class="wp-image-3521" src="/wp-content/uploads/2018/05/word-image-3113.png" srcset="/wp-content/uploads/2018/05/word-image-3113.png 830w, /wp-content/uploads/2018/05/word-image-3113-300x162.png 300w, /wp-content/uploads/2018/05/word-image-3113-768x414.png 768w" sizes="(max-width: 830px) 100vw, 830px" /></p>
<h3>3）选择安装的工作目录</h3>
<p><img loading="lazy" decoding="async" width="493" height="387" class="wp-image-3522" src="/wp-content/uploads/2018/05/word-image-3114.png" srcset="/wp-content/uploads/2018/05/word-image-3114.png 493w, /wp-content/uploads/2018/05/word-image-3114-300x235.png 300w" sizes="(max-width: 493px) 100vw, 493px" /></p>
<h3>选择组件</h3>
<p><img loading="lazy" decoding="async" width="490" height="380" class="wp-image-3523" src="/wp-content/uploads/2018/05/word-image-3115.png" srcset="/wp-content/uploads/2018/05/word-image-3115.png 490w, /wp-content/uploads/2018/05/word-image-3115-300x233.png 300w" sizes="(max-width: 490px) 100vw, 490px" /></p>
<h3>开始菜单目录名设置</h3>
<p><img loading="lazy" decoding="async" width="487" height="383" class="wp-image-3524" src="/wp-content/uploads/2018/05/word-image-3116.png" srcset="/wp-content/uploads/2018/05/word-image-3116.png 487w, /wp-content/uploads/2018/05/word-image-3116-300x236.png 300w" sizes="(max-width: 487px) 100vw, 487px" /></p>
<h3>选择使用命令行环境</h3>
<p><img loading="lazy" decoding="async" width="484" height="385" class="wp-image-3525" src="/wp-content/uploads/2018/05/word-image-3117.png" srcset="/wp-content/uploads/2018/05/word-image-3117.png 484w, /wp-content/uploads/2018/05/word-image-3117-300x239.png 300w" sizes="(max-width: 484px) 100vw, 484px" /></p>
<h3>以下三步默认，直接点击next</h3>
<p><img loading="lazy" decoding="async" width="489" height="374" class="wp-image-3526" src="/wp-content/uploads/2018/05/word-image-3118.png" srcset="/wp-content/uploads/2018/05/word-image-3118.png 489w, /wp-content/uploads/2018/05/word-image-3118-300x229.png 300w" sizes="(max-width: 489px) 100vw, 489px" /><br />
<img loading="lazy" decoding="async" width="481" height="388" class="wp-image-3527" src="/wp-content/uploads/2018/05/word-image-3119.png" srcset="/wp-content/uploads/2018/05/word-image-3119.png 481w, /wp-content/uploads/2018/05/word-image-3119-300x242.png 300w" sizes="(max-width: 481px) 100vw, 481px" /><br />
<img loading="lazy" decoding="async" width="493" height="375" class="wp-image-3528" src="/wp-content/uploads/2018/05/word-image-3120.png" srcset="/wp-content/uploads/2018/05/word-image-3120.png 493w, /wp-content/uploads/2018/05/word-image-3120-300x228.png 300w" sizes="(max-width: 493px) 100vw, 493px" /></p>
<h3>8）等待安装</h3>
<p><img loading="lazy" decoding="async" width="487" height="389" class="wp-image-3529" src="/wp-content/uploads/2018/05/word-image-3121.png" srcset="/wp-content/uploads/2018/05/word-image-3121.png 487w, /wp-content/uploads/2018/05/word-image-3121-300x240.png 300w" sizes="(max-width: 487px) 100vw, 487px" /><br />
<img loading="lazy" decoding="async" width="507" height="379" class="wp-image-3530" src="/wp-content/uploads/2018/05/word-image-3122.png" srcset="/wp-content/uploads/2018/05/word-image-3122.png 507w, /wp-content/uploads/2018/05/word-image-3122-300x224.png 300w" sizes="(max-width: 507px) 100vw, 507px" /><br />
<img loading="lazy" decoding="async" width="494" height="384" class="wp-image-3531" src="/wp-content/uploads/2018/05/word-image-3123.png" srcset="/wp-content/uploads/2018/05/word-image-3123.png 494w, /wp-content/uploads/2018/05/word-image-3123-300x233.png 300w" sizes="(max-width: 494px) 100vw, 494px" /></p>
<h3>检验是否安装成功</h3>
<p><img loading="lazy" decoding="async" width="321" height="308" class="wp-image-3532" src="/wp-content/uploads/2018/05/word-image-3124.png" srcset="/wp-content/uploads/2018/05/word-image-3124.png 321w, /wp-content/uploads/2018/05/word-image-3124-300x288.png 300w" sizes="(max-width: 321px) 100vw, 321px" /></p>
<h1>四、Git基本工作流程</h1>
<h2>1、Git工作区域</h2>
<p><img loading="lazy" decoding="async" width="630" height="345" class="wp-image-3533" src="/wp-content/uploads/2018/05/word-image-3125.png" srcset="/wp-content/uploads/2018/05/word-image-3125.png 630w, /wp-content/uploads/2018/05/word-image-3125-300x164.png 300w" sizes="(max-width: 630px) 100vw, 630px" /></p>
<h2>2、向仓库中添加文件流程</h2>
<p><img loading="lazy" decoding="async" width="674" height="356" class="wp-image-3534" src="/wp-content/uploads/2018/05/word-image-3126.png" srcset="/wp-content/uploads/2018/05/word-image-3126.png 674w, /wp-content/uploads/2018/05/word-image-3126-300x158.png 300w" sizes="(max-width: 674px) 100vw, 674px" /></p>
<h1>五、Git管理本地仓库</h1>
<h2>1、基本信息设置</h2>
<p><img loading="lazy" decoding="async" width="589" height="342" class="wp-image-3535" src="/wp-content/uploads/2018/05/word-image-3127.png" srcset="/wp-content/uploads/2018/05/word-image-3127.png 589w, /wp-content/uploads/2018/05/word-image-3127-300x174.png 300w" sizes="(max-width: 589px) 100vw, 589px" /></p>
<p>步骤1：在桌面创建一个test文件夹</p>
<p>步骤2：进入文件夹鼠标右击，选择【Git Bash Here】</p>
<p><img loading="lazy" decoding="async" width="755" height="267" class="wp-image-3536" src="/wp-content/uploads/2018/05/word-image-3128.png" srcset="/wp-content/uploads/2018/05/word-image-3128.png 755w, /wp-content/uploads/2018/05/word-image-3128-300x106.png 300w" sizes="(max-width: 755px) 100vw, 755px" /></p>
<p>步骤3：输入初始化指令</p>
<p><img loading="lazy" decoding="async" width="484" height="330" class="wp-image-3537" src="/wp-content/uploads/2018/05/word-image-3129.png" srcset="/wp-content/uploads/2018/05/word-image-3129.png 484w, /wp-content/uploads/2018/05/word-image-3129-300x205.png 300w, /wp-content/uploads/2018/05/word-image-3129-220x150.png 220w" sizes="(max-width: 484px) 100vw, 484px" /></p>
<h2>2、初始化一个新的Git仓库</h2>
<p><img loading="lazy" decoding="async" width="962" height="591" class="wp-image-3538" src="/wp-content/uploads/2018/05/word-image-3130.png" srcset="/wp-content/uploads/2018/05/word-image-3130.png 962w, /wp-content/uploads/2018/05/word-image-3130-300x184.png 300w, /wp-content/uploads/2018/05/word-image-3130-768x472.png 768w" sizes="(max-width: 962px) 100vw, 962px" /></p>
<h2>3、向仓库添加文件</h2>
<p><img loading="lazy" decoding="async" width="846" height="641" class="wp-image-3539" src="/wp-content/uploads/2018/05/word-image-3131.png" srcset="/wp-content/uploads/2018/05/word-image-3131.png 846w, /wp-content/uploads/2018/05/word-image-3131-300x227.png 300w, /wp-content/uploads/2018/05/word-image-3131-768x582.png 768w" sizes="(max-width: 846px) 100vw, 846px" /></p>
<h2>4、修改仓库文件</h2>
<p><img loading="lazy" decoding="async" width="971" height="559" class="wp-image-3540" src="/wp-content/uploads/2018/05/word-image-3132.png" srcset="/wp-content/uploads/2018/05/word-image-3132.png 971w, /wp-content/uploads/2018/05/word-image-3132-300x173.png 300w, /wp-content/uploads/2018/05/word-image-3132-768x442.png 768w" sizes="(max-width: 971px) 100vw, 971px" /></p>
<h2>5、删除仓库文件</h2>
<p><img loading="lazy" decoding="async" width="737" height="460" class="wp-image-3541" src="/wp-content/uploads/2018/05/word-image-3133.png" srcset="/wp-content/uploads/2018/05/word-image-3133.png 737w, /wp-content/uploads/2018/05/word-image-3133-300x187.png 300w" sizes="(max-width: 737px) 100vw, 737px" /></p>
<h1>六、Git管理远程仓库</h1>
<h2>1、使用远程仓库的目的</h2>
<p><img loading="lazy" decoding="async" width="657" height="363" class="wp-image-3542" src="/wp-content/uploads/2018/05/word-image-3134.png" srcset="/wp-content/uploads/2018/05/word-image-3134.png 657w, /wp-content/uploads/2018/05/word-image-3134-300x166.png 300w" sizes="(max-width: 657px) 100vw, 657px" /><br />
<img loading="lazy" decoding="async" width="676" height="378" class="wp-image-3543" src="/wp-content/uploads/2018/05/word-image-3135.png" srcset="/wp-content/uploads/2018/05/word-image-3135.png 676w, /wp-content/uploads/2018/05/word-image-3135-300x168.png 300w" sizes="(max-width: 676px) 100vw, 676px" /></p>
<h2>2、Git克隆操作</h2>
<h3>1）目的</h3>
<h3>2）练习</h3>
<p>步骤1：克隆</p>
<p><img loading="lazy" decoding="async" width="977" height="598" class="wp-image-3544" src="/wp-content/uploads/2018/05/word-image-3136.png" srcset="/wp-content/uploads/2018/05/word-image-3136.png 977w, /wp-content/uploads/2018/05/word-image-3136-300x184.png 300w, /wp-content/uploads/2018/05/word-image-3136-768x470.png 768w" sizes="(max-width: 977px) 100vw, 977px" /></p>
<p>步骤2：在仓库目录下新建文件或新建代码</p>
<p><img loading="lazy" decoding="async" width="877" height="636" class="wp-image-3545" src="/wp-content/uploads/2018/05/word-image-3137.png" srcset="/wp-content/uploads/2018/05/word-image-3137.png 877w, /wp-content/uploads/2018/05/word-image-3137-300x218.png 300w, /wp-content/uploads/2018/05/word-image-3137-768x557.png 768w" sizes="(max-width: 877px) 100vw, 877px" /></p>
<h2>将本地仓库同步到git远程仓库中</h2>
<p><img loading="lazy" decoding="async" width="751" height="107" class="wp-image-3546" src="/wp-content/uploads/2018/05/word-image-3138.png" srcset="/wp-content/uploads/2018/05/word-image-3138.png 751w, /wp-content/uploads/2018/05/word-image-3138-300x43.png 300w" sizes="(max-width: 751px) 100vw, 751px" /><br />
<img loading="lazy" decoding="async" width="612" height="362" class="wp-image-3547" src="/wp-content/uploads/2018/05/word-image-3139.png" srcset="/wp-content/uploads/2018/05/word-image-3139.png 612w, /wp-content/uploads/2018/05/word-image-3139-300x177.png 300w" sizes="(max-width: 612px) 100vw, 612px" /><br />
<img loading="lazy" decoding="async" width="566" height="202" class="wp-image-3548" src="/wp-content/uploads/2018/05/word-image-3140.png" srcset="/wp-content/uploads/2018/05/word-image-3140.png 566w, /wp-content/uploads/2018/05/word-image-3140-300x107.png 300w" sizes="(max-width: 566px) 100vw, 566px" /><br />
<img loading="lazy" decoding="async" width="1057" height="467" class="wp-image-3549" src="/wp-content/uploads/2018/05/word-image-3141.png" srcset="/wp-content/uploads/2018/05/word-image-3141.png 1057w, /wp-content/uploads/2018/05/word-image-3141-300x133.png 300w, /wp-content/uploads/2018/05/word-image-3141-768x339.png 768w, /wp-content/uploads/2018/05/word-image-3141-1024x452.png 1024w" sizes="(max-width: 1057px) 100vw, 1057px" /></p>
<p>多学一招：github ssh提交实战推荐。</p>
]]></content:encoded>
					
					<wfw:commentRss>/%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6/3478.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GitHub（二）Git与Svn区别、安装GIT、创建仓库、克隆仓库至本地、Git工作流、Git常用指令、ssh协议创建私钥好公钥、GIt分支、创建标签（版本号）、搭建Git服务器</title>
		<link>/%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6/8662.html</link>
					<comments>/%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6/8662.html#respond</comments>
		
		<dc:creator><![CDATA[Mr.Lee]]></dc:creator>
		<pubDate>Sat, 19 May 2018 10:01:03 +0000</pubDate>
				<category><![CDATA[GIT]]></category>
		<category><![CDATA[版本控制]]></category>
		<category><![CDATA[git与svn区别]]></category>
		<category><![CDATA[GIt分支]]></category>
		<category><![CDATA[Git工作流]]></category>
		<category><![CDATA[git常用指令]]></category>
		<category><![CDATA[ssh协议创建私钥好公钥]]></category>
		<category><![CDATA[克隆仓库至本地]]></category>
		<category><![CDATA[创建仓库]]></category>
		<category><![CDATA[创建标签（版本号）]]></category>
		<category><![CDATA[安装GIT]]></category>
		<category><![CDATA[搭建Git服务器]]></category>
		<guid isPermaLink="false">/?p=8662</guid>

					<description><![CDATA[git和svn的区别 svn是集中式的版本控制系统 git是分布式的版本控制系统 集中式： 可以看出svn集中 [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>git和svn的区别</h1>
<p>svn是集中式的版本控制系统</p>
<p>git是分布式的版本控制系统</p>
<p>集中式：</p>
<p><img loading="lazy" decoding="async" width="881" height="609" class="wp-image-8665" src="/wp-content/uploads/2018/06/word-image-1231.png" srcset="/wp-content/uploads/2018/06/word-image-1231.png 881w, /wp-content/uploads/2018/06/word-image-1231-300x207.png 300w, /wp-content/uploads/2018/06/word-image-1231-768x531.png 768w" sizes="(max-width: 881px) 100vw, 881px" /></p>
<p>可以看出svn集中式版本控制都是把所有的版本存储在svn服务器中</p>
<p>且必须要联网到svn服务器才可以进行版本的回退、更新等操作。</p>
<p>假如哪天svn服务器坏了，那么所有的版本代码都将丢失，也就无法获取代码和回退版本等操作。天啊，这将是一个悲伤的故事！</p>
<p>如何化悲伤为快乐呢，来看看git如何工作的把！</p>
<p>分布式：</p>
<p><img loading="lazy" decoding="async" width="829" height="553" class="wp-image-8666" src="/wp-content/uploads/2018/06/word-image-1232.png" srcset="/wp-content/uploads/2018/06/word-image-1232.png 829w, /wp-content/uploads/2018/06/word-image-1232-300x200.png 300w, /wp-content/uploads/2018/06/word-image-1232-768x512.png 768w" sizes="(max-width: 829px) 100vw, 829px" /></p>
<p>可以看出，使用git,每个电脑都有完整的版本号和日志信息。</p>
<p>且没有网的时候，git照样可以工作，只是把代码提交到本地，待有网在提交到远程git仓库</p>
<p>就算哪天git服务器坏了也没事，因为本地仓库都保存了完整的版本。</p>
<p>github、码云</p>
<h1>安装git工具</h1>
<p>git是linux之父李纳斯发明的。</p>
<p>安装注意自己系统的位数。</p>
<p><img loading="lazy" decoding="async" width="720" height="73" class="wp-image-8667" src="/wp-content/uploads/2018/06/word-image-1233.png" srcset="/wp-content/uploads/2018/06/word-image-1233.png 720w, /wp-content/uploads/2018/06/word-image-1233-300x30.png 300w" sizes="(max-width: 720px) 100vw, 720px" /></p>
<p>安装的时候选择安装路径即可，然后一路next即可。安装好后鼠标右键会多出以下两个选项，代表git工具安装完成。</p>
<p><img loading="lazy" decoding="async" width="481" height="151" class="wp-image-8668" src="/wp-content/uploads/2018/06/word-image-1234.png" srcset="/wp-content/uploads/2018/06/word-image-1234.png 481w, /wp-content/uploads/2018/06/word-image-1234-300x94.png 300w" sizes="(max-width: 481px) 100vw, 481px" /></p>
<h1>在github创建仓库</h1>
<p>创建仓库比较简单，参考下面的图片即可：</p>
<p>1、点击加号+，选择New repository新建仓库</p>
<p><img loading="lazy" decoding="async" width="361" height="72" class="wp-image-8669" src="/wp-content/uploads/2018/06/word-image-1235.png" srcset="/wp-content/uploads/2018/06/word-image-1235.png 361w, /wp-content/uploads/2018/06/word-image-1235-300x60.png 300w" sizes="(max-width: 361px) 100vw, 361px" /></p>
<p>2、输入创建仓库的信息</p>
<p><img loading="lazy" decoding="async" width="729" height="586" class="wp-image-8670" src="/wp-content/uploads/2018/06/word-image-1236.png" srcset="/wp-content/uploads/2018/06/word-image-1236.png 729w, /wp-content/uploads/2018/06/word-image-1236-300x241.png 300w" sizes="(max-width: 729px) 100vw, 729px" /></p>
<p>创建好之后，如下所示：</p>
<p><img loading="lazy" decoding="async" width="658" height="542" class="wp-image-8671" src="/wp-content/uploads/2018/06/word-image-1237.png" srcset="/wp-content/uploads/2018/06/word-image-1237.png 658w, /wp-content/uploads/2018/06/word-image-1237-300x247.png 300w" sizes="(max-width: 658px) 100vw, 658px" /></p>
<h1>4、克隆远程仓库代码到本地</h1>
<p>克隆远程的仓库代码到指定目录:</p>
<p>命令：git clone 仓库地址 [目录]</p>
<p>注意：不写目录名称会在当前目录创建一个与github仓库同名的目录</p>
<p>如下面的指令代表把仓库代码检出到当前目录(./)</p>
<p>git clone 仓库地址 ./</p>
<p>仓库地址位于：</p>
<p><img loading="lazy" decoding="async" width="1054" height="487" class="wp-image-8672" src="/wp-content/uploads/2018/06/word-image-1238.png" srcset="/wp-content/uploads/2018/06/word-image-1238.png 1054w, /wp-content/uploads/2018/06/word-image-1238-300x139.png 300w, /wp-content/uploads/2018/06/word-image-1238-768x355.png 768w, /wp-content/uploads/2018/06/word-image-1238-1024x473.png 1024w" sizes="(max-width: 1054px) 100vw, 1054px" /></p>
<p>仓库地址有两种协议：https、ssh。后面使用ssh协议可以免去每次推送代码输入密码的烦恼。</p>
<p>完整命令：git clone <a href="/goto/4rks" rel="nofollow">https://github.com/ww24kobe/test_project.git</a> ./</p>
<h1>git工作流</h1>
<p>一个git仓库包含以下三个部分：</p>
<p>工作区：就是我们电脑里能看到的目录。</p>
<p>暂存区：英文名叫stage,或index。一般存放在“.git目录”的index文件中。</p>
<p>版本库：工作区有一个隐藏目录.git,这个不算工作区，而是git的版本库。且自动创建一个 master 分支以及指向分支的 HEAD 指针</p>
<p><img loading="lazy" decoding="async" width="674" height="323" class="wp-image-8673" src="/wp-content/uploads/2018/06/git.jpeg" alt="git工作流" srcset="/wp-content/uploads/2018/06/git.jpeg 674w, /wp-content/uploads/2018/06/git-300x144.jpeg 300w" sizes="(max-width: 674px) 100vw, 674px" /></p>
<p>后面众多的git命令，就是在以上三者中互相交叉使用。</p>
<h1>6、开发中git常用的指令</h1>
<p><a href="/wp-content/uploads/2018/05/git常用命令速查表.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-8686" src="/wp-content/uploads/2018/05/git常用命令速查表.png" alt="" width="2339" height="1654" srcset="/wp-content/uploads/2018/05/git常用命令速查表.png 2339w, /wp-content/uploads/2018/05/git常用命令速查表-300x212.png 300w, /wp-content/uploads/2018/05/git常用命令速查表-768x543.png 768w, /wp-content/uploads/2018/05/git常用命令速查表-1024x724.png 1024w" sizes="(max-width: 2339px) 100vw, 2339px" /></a></p>
<ul>
<li>全局设置：设置提交的用户名和邮箱，用于查看代码是哪些用户提交的，方便排查。</li>
</ul>
<p>git config &#8211;global user.name 名字 # 叫啥名字</p>
<p>git config &#8211;global user.email 邮箱 # 怎么联系你</p>
<ul>
<li>在指定目录创建一个git仓库，但要保证此目录一定是空的。</li>
</ul>
<p>git init :执行完后会在当前目录生成一个.git的隐藏文件夹</p>
<p>同时在设置远程仓库的地址：</p>
<p>git remote add origin url # 设置本地的远程仓库地址</p>
<ul>
<li>克隆远程的仓库代码到指定目录:</li>
</ul>
<p>git clone url [目录]</p>
<p>注意：不写目录名称会在当前目录创建一个与github仓库同名的目录</p>
<p>如下面的指令代表把指定url仓库代码检出到当前目录(./)</p>
<p>git clone url ./</p>
<ul>
<li>添加当前目录的所有文件到暂存区:</li>
</ul>
<p>git add .</p>
<ul>
<li>查看暂存区状态:</li>
</ul>
<p>git status</p>
<ul>
<li>提交文件:</li>
</ul>
<p>git commit -m ‘备注信息’</p>
<ul>
<li>查看提交备注的信息（查看提交记录）</li>
</ul>
<p>git log 或者 git reflog 或 git log &#8211;pretty=oneline</p>
<ul>
<li>代码版本回退:</li>
</ul>
<p><img loading="lazy" decoding="async" width="958" height="59" class="wp-image-8674" src="/wp-content/uploads/2018/06/word-image-1239.png" srcset="/wp-content/uploads/2018/06/word-image-1239.png 958w, /wp-content/uploads/2018/06/word-image-1239-300x18.png 300w, /wp-content/uploads/2018/06/word-image-1239-768x47.png 768w" sizes="(max-width: 958px) 100vw, 958px" /></p>
<p>git reset &#8211;hard HEAD 回到当前的版本</p>
<p>git reset &#8211;hard HEAD^ 回到当前的版本前一个版本</p>
<p>git reset &#8211;hard HEAD^^ 回到当前的版本前两个版本</p>
<p>git reset &#8211;hard af4542g(使用git log 获取日志的前7位,可以回到指定的版本)</p>
<ul>
<li>删除文件</li>
</ul>
<p>git rm files</p>
<ul>
<li>撤掉修改</li>
</ul>
<p>git checkout files</p>
<ul>
<li>推送代码到远程服务器:</li>
</ul>
<p>git push -u origin master</p>
<ul>
<li>修改本地远程仓库地址：</li>
</ul>
<p>git remote add origin url # 设置本地的远程仓库地址</p>
<p>git remote rm origin # 移除本地远程仓库地址</p>
<ul>
<li>从远程服务器获取内容:</li>
</ul>
<p>git pull orgin master 拉取远程仓库代码并合并</p>
<p>git fetch orgin master 拉取远程仓库代码不会合并</p>
<p>远程代码强制覆盖本地代码：</p>
<p>git pull origin master &#8211;allow-unrelated-histories</p>
<ul>
<li>仓库地址</li>
</ul>
<p>git remote -v #查看本地的远程仓库路径</p>
<p>git remote rm origin #移除本地远程仓库地址</p>
<p>git remote add origin git@github.com:用户名/仓库名.git #设置本地的远程仓库地址</p>
<h1>7、给ssh协议创建私钥和公钥</h1>
<p>如果仓库地址使用https的协议，每次提交都会要求输入远程仓库github的用户名和密码，</p>
<p>如果我们使用ssh协议作为仓库地址的话，并且配置好私钥和公钥，每次提交就会免去输入用户名和密码的烦恼。</p>
<p>公钥：理解为锁,上传到github中存放着。</p>
<p>私钥：理解为锁的钥匙，在本地电脑存放着。</p>
<p>也就是说只有锁的对应钥匙才可以进行提交代码。</p>
<p>创建ssh私钥和公钥，输入: ssh-keygen -t rsa -C &#8216;邮箱地址&#8217; ，然后一路回车即可，成功之后会在当前用户的目录多出如下的两个文件。</p>
<p>id.rsa:私钥文件</p>
<p>id_rsa.pub:公钥文件</p>
<p><img loading="lazy" decoding="async" width="727" height="365" class="wp-image-8675" src="/wp-content/uploads/2018/06/word-image-1240.png" srcset="/wp-content/uploads/2018/06/word-image-1240.png 727w, /wp-content/uploads/2018/06/word-image-1240-300x151.png 300w" sizes="(max-width: 727px) 100vw, 727px" /></p>
<p>把id_rsa.pub的公钥内容复制到github上面去，步骤如下：</p>
<p><img loading="lazy" decoding="async" width="1207" height="657" class="wp-image-8676" src="/wp-content/uploads/2018/06/word-image-1241.png" srcset="/wp-content/uploads/2018/06/word-image-1241.png 1207w, /wp-content/uploads/2018/06/word-image-1241-300x163.png 300w, /wp-content/uploads/2018/06/word-image-1241-768x418.png 768w, /wp-content/uploads/2018/06/word-image-1241-1024x557.png 1024w" sizes="(max-width: 1207px) 100vw, 1207px" /></p>
<p>添加好后如下所示：</p>
<p><img loading="lazy" decoding="async" width="1225" height="217" class="wp-image-8677" src="/wp-content/uploads/2018/06/word-image-1242.png" srcset="/wp-content/uploads/2018/06/word-image-1242.png 1225w, /wp-content/uploads/2018/06/word-image-1242-300x53.png 300w, /wp-content/uploads/2018/06/word-image-1242-768x136.png 768w, /wp-content/uploads/2018/06/word-image-1242-1024x181.png 1024w" sizes="(max-width: 1225px) 100vw, 1225px" /></p>
<p>最后修改远程仓库地址为ssh协议即可：</p>
<p>git remote -v #查看本地的远程仓库路径</p>
<p>git remote rm origin #移除本地远程仓库地址</p>
<p>git remote add origin git@github.com:用户名/仓库名.git #设置本地的远程仓库地址</p>
<h1>8、git分支</h1>
<p><a href="/wp-content/uploads/2018/05/git命令流程图解.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-8688" src="/wp-content/uploads/2018/05/git命令流程图解.png" alt="" width="508" height="421" srcset="/wp-content/uploads/2018/05/git命令流程图解.png 508w, /wp-content/uploads/2018/05/git命令流程图解-300x249.png 300w" sizes="(max-width: 508px) 100vw, 508px" /></a></p>
<p>master分支：每个仓库默认有的分支，主要用来发布代码新版本。</p>
<p>平常代码的开发在创建的开发分支 dev 上进行。</p>
<p>开发分支dev开发完毕后，把此分支的代码合并到master 分支，最后再把master分支下的代码推送到远程服务器（即远程仓库github）</p>
<p>分支有关的指令：</p>
<ul>
<li>查看仓库所有的分支:</li>
</ul>
<p>git branch</p>
<ul>
<li>创建dev分支:</li>
</ul>
<p>git branch dev</p>
<ul>
<li>切换分支(切换到master分支):</li>
</ul>
<p>git checkout master</p>
<ul>
<li>合并分支dev到master主分支</li>
</ul>
<p>先切换到要合并的分支，再把dev分支合并到当前分支</p>
<p>git checkout master</p>
<p>git merge &#8211;no-f dev -m ‘合并的信息’</p>
<p>注：通过选项&#8211;no-f合并也算一次提交</p>
<ul>
<li>删除分支dev:</li>
</ul>
<p>git branch -d dev</p>
<ul>
<li>提交分支dev:</li>
</ul>
<p>git push origin dev</p>
<p>有关git分支的管理策略：</p>
<p><img loading="lazy" decoding="async" width="283" height="29" class="wp-image-8678" src="/wp-content/uploads/2018/06/word-image-1243.png" /></p>
<h1>创建标签（版本号）</h1>
<ul>
<li>查看所有标签</li>
</ul>
<p>git tag</p>
<ul>
<li>创建标签，版本号为1.0， -m 备注信息</li>
</ul>
<p>git tag v1.0 -m ‘version 1.0’</p>
<ul>
<li>推送本地的所有标签到远程仓库，其他人克隆此仓库或拉取数据同步后，也会看到这些标签。</li>
</ul>
<p>git push origin master &#8211;tags</p>
<h1>搭建git服务器</h1>
<p>参考简书地址：<a href="/goto/f8cf" rel="nofollow">https://www.jianshu.com/p/e79ea05d9b61</a></p>
<div>
<p>环境：<strong>Centos7</strong></p>
<h2>一、 服务端安装</h2>
<p>第 1 步：先安装 git 工具<br />
<code>git -y install git</code><br />
输入 git 命令测试，若出现相应的提示说明安装成功。</p>
<p>第 2 步：新建一个用户起名 git<br />
<code>adduser git</code></p>
<p>第 3 步：在 / home/git / 目录下创建一个名为. ssh 的文件夹，在其. ssh 目录中新建一个文件名为 authorized_key, 用于后面保存客户端提供的公钥</p>
<pre class="hljs shell"><code class="shell">cd /home/git
mkdir .ssh
touch authorized_key
</code></pre>
<p>第 4 步：在 git 用户目录创建一个仓库，名为 project.git, 在初始化此仓库</p>
<pre class="hljs shell"><code class="shell">cd /home/git
mkdir project.git
git init --bare project.git
</code></pre>
<p>第 5 步：将 git 用户目录中的仓库和 ssh 目录的所有者和所属组都设置为 git</p>
<pre class="hljs shell"><code class="shell">cd /home/git
chown -R git.git project.git/
chown -R git.git .ssh/
</code></pre>
<p>第 6 步：修改 sshd_config 文件，打开 RSA 认证<br />
<code>vim /etc/ssh/sshd_config</code><br />
开启三项：</p>
<pre class="hljs shell"><code class="shell"> RSAAuthentication yes     
 PubkeyAuthentication yes     
 AuthorizedKeysFile  .ssh/authorized_keys
</code></pre>
<blockquote><p>为了安全，禁止 git 用户进行 shell 登录</p>
<pre class="hljs shell"><code class="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
</code></pre>
</blockquote>
<p>至此 git 服务端安装完成。<br />
现在来测试是否安装成功，这里以 window 系统测试为例</p>
<h2>二、客户端测试</h2>
<p>需要在客户端安装 git 工具，linux 系统则不需要，window 系统需要<br />
下载地址：<a href="/goto/5dav" target="_blank" rel="nofollow noopener">https://git-scm.com/download/win</a></p>
<p>第 1 步：生成私钥和公钥，使用命令 ssh-keygen -t rsa , 一路回车即可，会在当前用户的. ssh 目录生成两个文件：<br />
私钥：id_rsa<br />
公钥：id_rsa.pub<br />
将公钥文件（id_rsa.pub）交给 git 服务器的管理员，会将此公钥内容添加到 authorized_key 文件中，一行一个公钥。</p>
<p>第 2 步：克隆 git 仓库，到本地目录测试</p>
<pre class="hljs shell"><code class="shell">git clone git@xxx.xxx.xxx.xxx:/home/git/project.git  ./
git add .
git commit -m 'first commit'
git push
</code></pre>
<p>其中 xxx.xxx.xxx.xxx 为 git 服务器的 ip 地址</p>
<blockquote><p>注：若提示需要密码，则检查上面的公钥和私钥是否配置成功</p>
<p>Git使用教程.pdf：</p>
<p>[embeddoc url=&#8221;/wp-content/uploads/2018/05/Git使用教程.pdf&#8221; download=&#8221;all&#8221;]</p>
<p>Git分支管理策略.pdf：</p>
<p>[embeddoc url=&#8221;/wp-content/uploads/2018/05/Git分支管理策略.pdf&#8221; download=&#8221;all&#8221;]</p>
<p>用SourceTree轻松Git项目图解.pdf：</p>
<p>[embeddoc url=&#8221;/wp-content/uploads/2018/05/用SourceTree轻松Git项目图解.pdf&#8221; download=&#8221;all&#8221;]</p></blockquote>
</div>
]]></content:encoded>
					
					<wfw:commentRss>/%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6/8662.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
