您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > Git-简单使用教程(个人独享版)
Windows下Git和Gitlab简单教程---jack杨俊伟在使用之前,因为大家之前用的都是SVN集中式的版本控制系统,而git是分布式的,但在使用和功能上差异没有特别大,这里需要先简单了解它们的差异。1)最核心的区别Git是分布式的,而Svn不是分布的。Git跟Svn一样有自己的集中式版本库和Server端,但Git更倾向于分布式开发,因为每一个开发人员的电脑上都有一个LocalRepository,所以即使没有网络也一样可以Commit,查看历史版本记录,创建项目分支等操作,等网络再次连接上Push到Server端。2)Git把内容按元数据方式存储,而SVN是按文件:因为,.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。.git目录的体积大小跟.svn比较,你会发现它们差距很大。3)Git没有一个全局版本号,而SVN有。Git的内容的完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。Git下载下来后,在OffLine状态下可以看到所有的Log,SVN不可以。4)SVN必须先Update才能Commit,忘记了合并时就会出现一些错误,git还是比较少的出现这种情况。5)克隆一份全新的目录以同样拥有五个分支来说,SVN是同时复製5个版本的文件,也就是说重复五次同样的动作。而Git只是获取文件的每个版本的元素6)提交(Commit)在SVN,当你提交你的完成品时,它将直接记录到中央版本库。当你发现你的完成品存在严重问题时,你已经无法阻止事情的发生了。如果网路中断,你根本没办法提交!而Git的提交完全属於本地版本库的活动。而你只需“推”(gitpush)到主要版本库即可。Git的“推”其实是在执行“同步”(Sync)。所以得出,SVN的特点是简单,只是需要一个放代码的地方时用是OK的。Git的特点版本控制可以不依赖网络做任何事情,对分支和合并有更好的支持。管理项目用SVN,管理代码用Git,这样可以取长补短。一、-在WIN10下开始安装GIT客户端(包括git和tortoiseGit)在使用教程中包含了必要的软件安装程序,版本是比较新的,可自行使用;操作系统:Windows10git版本:gitversion2.13.0.git客户端:TortoiseGit-2.4.0.2-64bit(官网下的)TortoiseGit语言包:汉化包,利于入门理解a.安装git环境软件(全部安装选项均采用默认,路径自行选择)基本一路默认next即可安装成功后,空白处右键可以发现gitbashb.安装TortoiseGit(全部安装选项均采用默认,路径自行选择)此处安装完后点击finish会自动重启,请注意勾选安装后右键菜单可以发现当然,如果初学有需要,可以再安装language汉化包(./software目录下)进入tortoiseGit-设置-语言因为我们的项目代码是放在服务器或者版本仓库里的,所以接下来我们需要对tortoiseGit进行一些简单的配置使用;用过SVN的朋友应该不陌生在这里我们可以通过命令行gitbash来简单设置打开后出现命令行,这里的gitbash里是可以写cmd命令也可以写linux命令的,这是非常号的地方,并且有高亮提示,习惯linux指令,命令行操作就会顺手输入以下内容(每行结束后,回车):gitconfig--globaluser.name“用户名”gitconfig--globaluser.email“邮箱地址”这里注意要空格以上命令中,用户名为邮箱中的用户名(一般为姓名拼音首字母小写缩写);邮箱地址为你的邮箱。设置好后,可以输入gitconfig--list命令,来显示设置结果:当然也可以通过右键菜单,tortoiseGit-settings-Git直接设置-生成SHHKey这里的密钥,是在代码递交或者clone的时候用来给仓库验证身份的,我们需要生成一个唯一可识别的key;1、这里采取命令行的方式如下在GitBash中输入如下内容,用来生成SSHKey:ssh-keygen-trsa-Cyour_email命令中,your_email为你的email地址。输入该命令后,将会提示要求输入sshkey的存放路径,建议直接回车,这时,存放路径将会放在用户目录下的.ssh文件夹中(一般为:C:\Users\用户名.ssh\id_rsa)。随后将会要求输入密码,此时建议为空,即直接回车,提示重复输入时,也直接回车。该操作将生成id_rsa和id_rsa.pub两个文件。具体如下图所示:2、当然也有菜单的图形操作,同样我们利用git自带的puttygen点击generate生成文件-接着出现(这里特别注意,不要等待,请随机移动鼠标生成编码)我们在(C:\Users\用户名.ssh\id_rsa)找到两个文件,就是刚生成的key文件,-这里我们还需要对它进行转化,生成.ppk的文件,后面才可以方便使用;我们可以这样理解,id_rsa.pub是要递交到仓库的公钥,而id_rsa则是用于打开锁的私钥,用于匹配;启动puttygen(在开始菜单的搜索框中输入puttygen,既可以搜索到该应用程序)启动后,界面如右图所示。点击load按钮将刚才最先生成的ssh中的密钥id_rsa文件导入,然后弹出对话框提示导入成功,接着点击saveprivatekey来保存ppk文件,最后在gitclone的对话框中加载ppk文件即可,连接的时候会提示输入git用户的密码,输入一下即可gitclone的配置文件。得到如下成功!-在服务器上或Gitlab上管理项目代码Git和svn一样在管理版本的时候需要提供url地址这里应要求以gitlab为例,为大家演示;那么什么是git,github,gitlab呢?我们在这里要有个明确的概念git是一种版本控制系统,是一个命令,是一种工具gitlib是用于实现git功能的开发库github是一个基于git实现的在线代码仓库,包含一个网站界面,向互联网开放gitlab是一个基于git实现的在线代码仓库软件,你可以用gitlab自己搭建一个类似于github一样的系统,一般用于在企业、学校等内部网络搭建git私服那么明确了这些概念以后,我们就需要有一个自己的gitlab账号点击进入:(此为王总提供注册登陆IP)如果你有github的账号,可以用它直接登陆,也可以重新注册一个,登陆以后的状态是这样子的;-然后我们需要在gitlab上递交保存我们之前生成的公共密钥以我本地为例C:\Users\Jack\.ssh,在此目录下,用记事本或者notepad++打开之前生成的id_rsa.pub,将其文件内容,全部复制到Key输入框中。Title建议为电子邮件地址(复制完Key后,会自动填充为Email地址)。点击AddKey。此时,你将拥有一个SSHKey,以后,在操作Git时,系统会自动使用私钥id_rsa来与服务器上的公钥进行认证匹配。1.为了得到一个ssh或http地址,用于上传托管项目,这里我们以我的账号为例,新增一个测试项目,点击右上角的+号创建项目;须知:这里如果我们把项目设置成private,那么clone的时候是需要输入账户密码的2.点击create得到ssh地址:git@jr13:garvisjack/usegit.git;(该为测试地址)http协议的地址:@jr13/garvisjack/usegit.git,左边的箭头可以选择但是我们最终需要输入的提取地址一定是包含IP的,这里是重点最终用于获取的地址:@192.168.1.66/garvisjack/usegit.git3.让我们新增一个测试的文档-新建一个文件或者别的新建成功!4.新建一个branch分支Branch分支在实际应用中是git版本管理的核心,通过master分流出来的支线来操做代码;以下步骤到这里我们已经完成了,软件的配置,gitlab的登录注册,密钥设置,接下来我们就开始本地上传或下载项目文件了。-开始使用git1.Clone(与SVN里的checkout类似)Clone是Git的常用操作,用于将服务器上的版本库复制到本地。右键点击需要复制的文件夹,选择Clone,按照下图中的操作即可:点击ok即clone成功出现页面2.CommitCommit是指将本地修改,应用到本地的版本库中。注意,和SVN不同,这里Commit不会上传到服务器。PushPush是将本地的版本库复制到服务器端。Commit成功后,在弹出的对话框左下角选择Push可以在本地Commit之后,直接Push到服务器中。在我们递交修改内容的时候,我们这里需要明确一个概念;master是仓库托管的主要项目,这里名字叫usegit,我们可以为它创建分支yangjw,分支在第一个版本是和master一模一样的,我们本地所有的修改都是递交到分支上进行测试的,最后通过在merge分支代码,合并冲突,才递交到master上,这是git版本的主要流程-那我们来递交一下新的project1.首先在任意本地目录,新建文件夹,用于存储仓库内容右键菜单出现,选择新建repository2.得到3.准备一个要上传的文档写好内容文件上边会出现一个+号但是这里我们要注意,为了避免gitpush失败并产生冲突,我们需要gitfetch:相当于是从远程获取最新版本到本地,不会自动mergegitpull:相当于是从远程获取最新版本并merge到本地这里因为是测试,所以我直接gitpull了,在实际使用中,gitfetch更安全一些因为在merge前,我们可以查看更新情况,然后再决定是否合并再次点击commit-push-点击AddNew/Save递交成功,展示登录网页的gitlab,选择repository,yangjw的分支到这里我们就完成了push一个修改的内容到分支上,如果主线master需要合并merge,再在客户端上操作,这样每个人递交的更新代码,都不会马上影响到主代码,保证了版本的完整性同时,增加了版本的可操作性。最后,以上所有操作是在win10的情况下说明的,而且大部分是图形操作,所有git操作都是有相应git命令的,在gitbash命令行中可以输入,相当于在linux下的操作,如果你使用的是苹果电脑,那么体验会非常的好,各位同事也基于兴趣,保证能使用工具的同时,自己扩展学习,灵活应用。------结束------2017.6.6
本文标题:Git-简单使用教程(个人独享版)
链接地址:https://www.777doc.com/doc-4201278 .html