一、概述 - gitsvn区别

所需软件私信我邮箱。

VCSversion control system)版本控制系统。分为两种,分布式版本控制系统(以git为代表)和集中式版本控制系统(SVN为代表)。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

1.1  SVN工作流程

Git的使用 随笔 第1张

 

集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。下面举例说明:

开始新一天的工作:

1、从服务器下载项目组最新代码。

2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。

3、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。

这就是经典的svn工作流程,从流程上看,有不少缺点,但也有优点。

优点:

1、管理方便,逻辑明确,符合一般人思维习惯。

2、易于管理,集中式服务器更能保证安全性。

3、代码一致性非常高。

4、适合开发人数不多的项目开发。

 

缺点:
1、服务器压力大。

2、特别依赖服务器,脱离了服务器,无法开展工作。

1.2  git工作流程

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

Git的使用 随笔 第2张

 

 

Git的功能特性:

从一般开发者的角度来看,git有以下功能:

1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。

2、在自己的机器上根据不同的开发目的,创建分支,修改代码。

3、在单机上自己创建的分支上提交代码。

4、在单机上合并分支。

5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。

6、生成补丁(patch),把补丁发送给主开发者。

7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。

8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。

从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:

1、查看邮件或者通过其它方式查看一般开发者的提交状态。

2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。

3、向公共服务器提交结果,然后通知所有开发人员。

优点:

l 适合分布式开发,强调个体。

l 公共服务器压力和数据量都不会太大。

l 速度快、灵活。

l 任意两个开发者之间可以很容易的解决冲突。

l 离线工作。

缺点:

l 资料少(起码中文资料很少)。

l 学习周期相对而言比较长。

l 不符合常规思维。

l 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

 

二、git的使用

git不是github,git的远端托管仓库有githubgitlabgitee

 

2.1 git下载及安装

下载地址:https://git-scm.com/download/

 Git的使用 随笔 第3张

Git的使用 随笔 第4张

双击安装,无脑下一步。

安装完成。此时是安装了三个东西,git GUIgit Bashgitk。在桌面上右键:

 Git的使用 随笔 第5张

2.1.1 git GUI

用户可视化界面。

 Git的使用 随笔 第6张

2.1.2 git Bash

命令行工具。

 Git的使用 随笔 第7张

2.1.3 gitk

分支可视化工具。可查看diff

 Git的使用 随笔 第8张

2.1.4 Git bash命令讲解

GIT bash里面是纯Linux命令。

pwd 查看当前所在目录

cd 切换文件夹

mkdir aaa  创建文件夹

touch 1.js 创建文件

mv 1.js ./2.js  改名

rm -rf ./2.js 强制删除

ls -all  列出当前目录的文件

 

2.2 git全局配置

使用git之前一定要全局配置,告诉git你是谁。

git config --global user.name "huoqingchi"
git config --global user.email "123203557@qq.com"

Git的使用 随笔 第9张

此时,在C:\Users\Administrator(家目录)文件夹下生成了一个.gitconfig隐藏文件,用来记录你的用户名和密码。

 Git的使用 随笔 第10张

如果你看不到这个文件,打开工具-文件夹选项-查看-显示隐藏的文件、文件夹:

 Git的使用 随笔 第11张

2.3 新建项目-git仓库

新建文件git_project文件夹,执行

git init

Git的使用 随笔 第12张

此时文件夹中生成.git隐藏文件夹,这个文件夹千万不能删除,它是用来记录版本信息的。

 Git的使用 随笔 第13张

2.4 提交代码

新建了index.html文件和index.css文件。

git add .
git commit -m "项目开荒"

Git的使用 随笔 第14张

git add . :添加当前文件夹下(包括里面的子文件夹)所有的有变动的文件到“待提交区域”

git commit : 提交文件到git版本库,真正的提交。

-m :注释

Git的使用 随笔 第15张

此时查看gitk:

 Git的使用 随笔 第16张

Git的使用 随笔 第17张

2.5 拉取代码

如果手误把你文件删除了,但是保证没把.git文件删除,可以把你最新提交的代码拉取回来:

git checkout .

Git的使用 随笔 第18张

git checkout .:拉取所有的文件

git checkout 文件名字:拉取单个文件

2.6 版本回退

每次版本提交,会生成一个SHA id码,用来区分每次的版本,可以用这个码来实现版本回退。

要回到哪次版本,在gitk中查看此次版本的SHA码,复制下来。

 Git的使用 随笔 第19张

git Bash中执行:

 

git reset --hard 08a96f3b0dc354aebc7ac471546681c433b050a40

Git的使用 随笔 第20张

此时gitk,发现后续版本都没有了,我如果想去后续版本,找不到SHA

 Git的使用 随笔 第21张

Git的使用 随笔 第22张

此时执行:

git reflog

此时会显示出来版本提交的列表以及每次提交的ID,咱们使用ID实现去后续版本。

 Git的使用 随笔 第23张

执行:

git reset --hard 66a2cca

就能回到第五次版本。

 Git的使用 随笔 第24张

Git的使用 随笔 第25张

三、Github

gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。也有付费版的,供企业使用。

3.1 注册

https://github.com/

注册只需要邮箱,这里不做演示。我直接登录。

 Git的使用 随笔 第26张

3.2 建库

 Git的使用 随笔 第27张

Git的使用 随笔 第28张

3.3 github联通

现在git项目好了,github上库也建好了,你托管git项目的时候github不知道你把你的项目托管到哪,所以咱们需要一个SSH码来让github知道你是谁。

生成SSH码:

ssh-keygen -t rsa -C "你注册github的邮箱"

ssh-keygen:生成一个密匙;

-t rsa:密匙的类型是rsa;

-C:注释

输入命令后按三下回车。

 Git的使用 随笔 第29张

然后生成的密匙保存在 c/Users/Administrator/.ssh/id_rsa.pub,复制密匙。

用编辑器打开(注意,不要使用windows自带的记事本,因为windows自带的记事本的换行符有bug)。

打开id_rsa.pub文件,复制里面的所有内容

 Git的使用 随笔 第30张

打开github中的setting:

 Git的使用 随笔 第31张Git的使用 随笔 第32张

Git的使用 随笔 第33张

此时测试一下你的电脑和远端github库有没有联通:

ssh -T git@github.com

Git的使用 随笔 第34张

能出现Hi 你的github的名字就说明联通成功了。

 

3.4 托管git项目

3.4.1 托管项目之前先新建README.md文件

md文件是markdown文件的后缀,类似与html,README.md文件显示在你项目的首页,用来介绍整个项目。

touch README.md

Git的使用 随笔 第35张

添加图片:

得到图片绝对地址可以把需要的图片上传到github上面然后获得github分配给你的绝对地址:

 Git的使用 随笔 第36张

之后在改变README.me文件:

![图片alt](图片地址 ''图片title'')
![blockchain](https://ss0.bdstatic.com/0.jpg "区块链")
图片alt就是显示在图片下面的文字,相当于对图片内容的解释。
图片title是图片的标题,当鼠标移到图片上时显示的内容。title可加可不加

3.4.2 托管项目

git add .
git commit -m “项目托管”
git remote add origin https://github.com/mufengsm/aiqianduan8.git//这个地址是你自己的仓库地址
git push -u origin master

Git的使用 随笔 第37张

3.5 克隆库

Github库的地址:

 Git的使用 随笔 第38张

git clone https://github.com/mufengsm/aiqianduan8.git

3.6 项目开发

项目的开发一定不能在主分支上,一定是在自己的分支上。主分支一定要是稳定的,是用来发布版本的。 

创建分支:

git branch huo1

 

切换分支:

git checkout huo1

 

删除分支:

git branch -D huo2

 

在自己分支上修改后,上传到远端giuhub库:

git add .
git commit -m “huo的提交”
git push origin huo1

Git的使用 随笔 第39张

合并分支,把huo1合并到主分支

git merge huo //切换到另一个分支进行跟huo合并

如何进入到这种状态可以取消这次合并,使用“git merge --abort”命令

 Git的使用 随笔 第40张

如果合并时进入到这个页面输入冒号加wq   ":wq",  按回车键,意思就是就是忽略这个提示

 Git的使用 随笔 第41张

解决合并时产生的冲突,比如我给两个开发者在各自分支上开发的时候给同一个元素设置了不同的样式就会报错:

 Git的使用 随笔 第42张

遇到冲突需要手动解决冲突,然后重新add/commit/push

 Git的使用 随笔 第43张

四、可视化工具(Github Desktop

 Git的使用 随笔 第44张

Git的使用 随笔 第45张

Git的使用 随笔 第46张

Git的使用 随笔 第47张

五、Visual Studio Code

 Git的使用 随笔 第48张

编辑器能够自动感应.git文件夹。

可以查看改变:

 Git的使用 随笔 第49张

Git的使用 随笔 第50张

Git的使用 随笔 第51张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄