gitlab的使用.docx
《gitlab的使用.docx》由会员分享,可在线阅读,更多相关《gitlab的使用.docx(12页珍藏版)》请在冰豆网上搜索。
gitlab的使用
Git介绍
Git是一款自由和开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git-版本控制工具
Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
Git最初被LinusTorvalds开发出来用于管理Linux内核的开发。
每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,不依赖于网络和中心服务器。
Github-一个网站,提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等
作为开源代码库以及版本控制系统,Github目前拥有140多万开发者用户。
随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。
如前所述,作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。
GitHub可以托管各种git库,并提供一个web界面,但与其它像SourceForge或GoogleCode这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。
为一个项目贡献代码非常简单:
首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pullrequest”机制向项目负责人申请代码合并。
已经有人将GitHub称为代码玩家的MySpace。
GitLab-基于Git的项目管理软件
GitLab是一个用于仓库管理系统的开源项目。
使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
Git和SVN的区别:
svn以服务器为中心的:
每个开发者都直接连在中间服务器上,本地修改,然后commit到svn服务器上。
这种做法看似完美,但是有致命的缺陷:
1.开发者不能本地跟踪代码版本。
所有的信息都是在服务器上。
你把本地的代码改了很多,但是又不能提交。
通常,本地只能缓存一个版本。
对于小项目无所谓,但是项目一复杂,人员多就麻烦了。
通常你本地的代码都全是红色的。
自己都不知道今天修改了什么,有哪些修改是真正应该提交给svn的。
2.因为第一点,一旦离开服务器,程序猿将无法正常工作。
因为本地不能跟踪代码版本。
你的(几乎)任何操作都必须连上服务器。
比如,showlog,blame,showhistory等等。
3.中央服务器压力过大。
因为每个人都必须把代码提交到服务器,并且做dailybuild。
4.对于大型项目,svn几乎不可用。
例如linux内核项目,开发者何止几万?
都直接提交给svn服务器的话还不乱套了。
5.对于个人的私人项目而言(或者对于小公司的项目),不用版本控制当然不行,但是为了用版本控制而专门假设svn服务器有有点舍不得。
Git的基本模型
一.软件下载
Git:
http:
//git-
TortoiseGit/TortoiseGit中文语言包:
http:
//download.tortoisegit.org/tgit/1.8.16.0/
二.软件安装
Git及TortoiseGit都采用默认安装,只要一直next就可以了。
安装成功后,右键鼠标将出现如下图所示:
三.基础配置
1.如果下载了中文包,配置修改版本语言为中文。
右键鼠标-TortoiseGit(T)-setting
2.建立版本库,注意不要在图二的选项上打钩
3.clone库
a.右键文件夹-Git拉取,弹出入下图弹框,选择“管理远端”
b.有两种访问方式http和ssh
b-1.使用http时,直接输入网页中的http地址即可:
确定后,下载代码,在弹出框中输入账号密码,下载完成
b-2.使用ssh方式时,首先需要生成密钥并且在网页中配置:
生成密钥工具:
使用安装TortoiseGit时安装的PuTTYgen,打开软件后,点击Generate
鼠标需要在红框处不停移动,才会生成密钥。
生成的密钥配置在网页中,并保存到本地:
配置完成后就可以不用输入账号密码来拉取代码了。
四.基本操作
1.按照之前的步骤创建版本库
2.进入文件夹,右键选择GitBashHere,输入gitclonehttp:
//git.guahao-,回车后输入账号密码即可下载代码,入下图所示。
或者可以按照之前的两种方式下载代码。
3.本地创建分支。
和svn一样,直接创建分支,
4.切换分支,选择你要切换的分支
5.修改完代码后,首先要提交到分支上
然后再通过推送分支,推送到服务器上
6.合并tag并不能直接操作,需要在分支上先合并主干代码,然后上传到服务器上,创建的tag根据分支来创建tag(tag不能随意更改,类似于稳定发布版本。
所以要修改代码,必须要重新合好分支,再由分支建新tag)
7.同样主干代码也需要在主干上把该分支代码合并再提交
8.部分指令
新建分支:
gitbranchbranch_name和gitcheckout–bbrance_name
查看所有分支:
gitbranch-a
删除分支:
gitbranch-dbranch_name
强制删除分支:
gitbranch-Dbranch_name
重命名本地分支:
gitbranch-mdeveldevelop
删除远程分支:
gitpushorigin--deletedevel(1.7.0以后)
向远程推送分支:
gitpushoriginmyfix
向远程推送分支并修改远程分支名:
gitpushoriginmyfix:
serverfix
查看没有合并的分支:
gitbranch--no-merged
问题与解答:
1.新建项目时,各个选项是什么意义
namespace
这个选择是用来决定这个工程所属的,可以选User为你自己。
或者选择组,这个会影响到后面工程的url。
例如选择了组去创建创建工程,那么这个工程就会在这个组内可见。
VisibilityLevel
权限等级分三种:
Private私有的,只有你自己或者组内的成员能访问
Internal所有登录的用户
Public公开的,所有人都可以访问
更新代码失败如何处理?