1.Git和SVN的对比

1)git是分布式的,svn是集中式的。(最核心)

2)git是每个历史版本都存储完整的文件,便于恢复,svn是存储差异文件,历史版本不可恢复。(核心)

3)git可离线完成大部分操作,svn则不能。

4)git有着更优雅的分支和合并实现。

5)git有着更强的撤销修改和修改历史版本的能力

6)git速度更快,效率更高。

基于以上区别,git有了很明显的优势,特别在于它具有的本地仓库。

2.git几个概念

1)工作目录

工作目录是对项目的某个版本独立提取出来的内容。这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。

2)暂存区域

是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。有时候也被称作`‘索引’’,不过一般说法还是叫暂存区域。

3)Git 仓库目录

是Git 用来保存项目的元数据和对象数据库的地方。这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。

3.git使用

1)常用选项

add        把工作目录内容添加到暂存区域

branch          查看和设置分支

checkout        切换分支和撤销

clone        克隆远程仓库

commit         把暂存取余提交到仓库

init        初始化工作目录

log          查看提交的日志信息

merge        合并分支

pull        拉取远程仓库

push         把本地内容推送到远程仓库

reset        撤销操作

status        查看文件所处的状态

2)使用

创建和初始化目录

mkdir /git_li

cd /git_li

git init

创建文件进行测试

echo "test" >test

git add .       #把工作目录下的所有文件提交到暂存区域

git commit -m "v1"      #把暂存区域的内容提交到仓库并标识为v1版本

git config --global user.email "you@example.com"     #进行认证

git config --global user.name "Your Name"

再次提交

查看版本信息

gitlog

多次提交并设置为不同版本

echo "123" >> test

git add .

git commit -m "v2"

[master 4c1ef68] v2

1 file changed, 1 insertion(+)

echo "123" >> test

git add .

git commit -m "v3"

[master 7cb610b] v3

切换至V1版本

git reset --hard 8a3e5e13ab

工作目录回滚

git checkout -- test   #进行工作目录状态撤销

暂存区域回滚

git reset HEAD test   #不提交至仓库

git checkout -- test   #工作目录中撤销

查看历史版本信息

git reflog

3)git分支

查看分支

git branch

创建分支

git branch test

切换分支

git checkout test

合并分支

git merge test

4.gitlab私有仓库

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

5.安装gitlab

1)下载安装包

wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm/download.rpm

2)修改ip

vim /etc/gitlab/gitlab.rb

external_url 'http://192.168.52.233'

3)重新配置

gitlab-ctl reconfigure

gitlab-ctl start

启动gitlab时80端口不可被占用

4)gitlab使用

git clone http://192.168.52.233/root/test.git

git push -u origin master

5)linux免秘钥使用gitlab

ssh-keygen 生成秘钥

公钥粘贴到gitlab的ssh-keys中

拉取gitlab项目

git clone git@192.168.52.233:root/test.git

git与gitlab工具的更多相关文章

  1. Git和Gitlab协同工作

    1.概述 在写这篇博客之前,为了更好的描述整个流程,本人亲自尝试了:从搭建到使用,下面就围绕这个流程来阐述整个过程,目录结构如下所示: Git的安装搭建 Git的常规操作 Gitlab的搭建 Gitl ...

  2. Git与GitLab

    Git与GitLab 一.Git Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个 ...

  3. git,github,gitlab,码云的区别

    git 是版本控制工具. github https://github.com/和gitlab https://about.gitlab.com/都是基于git仓库的web开发流程代码托管平台.两者的区 ...

  4. win10下git与gitlab安装与文件上传

    目前了解到的版本管理工具有三种:gitlab  GitHub 和 码云 个人感觉 gitlab 在公司用的较多 便于协同办公   GitHub各种资源有很多,适合个人使用   码云是中文版 便于入门 ...

  5. Jenkins持续集成git、gitlab、sonarqube(7.0)、nexus,自动化部署实战,附安装包,严禁转载!!!

    导读 之前用的都是SVN,由于工作需要用到Git,求人不如求己,技多不压身,多学一项技能,未来就少求别人一次,系统的学一遍,自己搭建一整套环境,自动化部署(自动发版),代码质量检测等等(为啥不用doc ...

  6. 几款Git GUI客户端工具

    工欲善其事,必先利其器. 作为一名开发人员,你不可能不知道git,无论你是开发自己的开源项目还是和团队一起进行大规模产品的开发,git都已经是源代码管理工具的首选.当然,那些hardcore deve ...

  7. Git代码管理工具

    Git代码管理工具 Git 是分布式的源代码管理工具,这点区别于svn -让源代码可以被追溯,主要是记录了每次的更新了什么,如果新版本不想用,那么则可以退回之前的版本 -Git 是Linux之父当年为 ...

  8. Git 源代码管理工具

    Git 源代码管理工具 Git基本信息 Git :Git是一个“分布式”的版本控制工具 Git的作者是Linux之父 Linus Benedict Torvolds,当初开发Git仅仅是为了辅助Lin ...

  9. git设置对比工具

    windows下设置 beyond compare 3 为 git  的对比工具. 首先需要先安装 beyond compare 3 工具,切记需要安装安装版的,不要搞绿色版的. mac下使用 Kal ...

随机推荐

  1. layui分页的使用心得

    // 执行页面加载的函数 loadData(1) // 每页条数 var limit = 5; // 渲染页面 function loadData(curr){ $.ajax({ type:" ...

  2. Java程序中使用 Jsoup 爬虫( 简单示例 )

    一.maven项目里pom添加jsoup依赖 <dependency> <groupId>org.jsoup</groupId> <artifactId> ...

  3. vue基本语法 JS补充

    目录 一.VUE框架入门 1. vue框架的优势 二.VUE框架的基本使用 1. vue的引用 2. vue的基本语法结构 2. 插值表达式 3. 文本指令 (1)v-text (2)v-html ( ...

  4. Flyway的简单介绍和使用(转)

    Flyway的简单介绍及使用 一.开发时管理数据库遇到的问题: 现在开发一般都是团队开发,这样就会出现项目同步的问题,代码同步可以通过SVN工具管理起来,那数据库同步怎么办呢?理想的情况下,在开发新项 ...

  5. 基于node.js的websocket上传小功能

    一.node.js 在目录里新建index.js var ws = require("nodejs-websocket"); console.log("开始建立连接... ...

  6. 有效的结构化思维训练,MECE分析法

    MECE原则,表达精准分类与全面性的有效利器 结构化思维的本质就是逻辑,其目的在于对问题的思考更完整.更有条理,它帮助我们一个一个找到线头,理清思路,探求事物之间的相互联系.MECE分析法是一种结构化 ...

  7. 【Python之路】特别篇--ECMA对象、DOM对象、BOM对象

    ECMA对象 从传统意义上来说,ECMAScript 并不真正具有类.事实上,除了说明不存在类,在 ECMA-262 中根本没有出现“类”这个词. ECMAScript 定义了“对象定义”,逻辑上等价 ...

  8. RestFul是啥

    1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的 ...

  9. java输出乱码专题

    https://blog.csdn.net/liaoYu1887/article/details/82714727(其他) @Controller public class ItemCatContro ...

  10. 一、MySQL一些简述

    概述 数据库(database) : 保存有组织的数据的容器(通常是一个文件或一组文件). 主键(primary key): 唯一标识表中每行的这个列(或这组列)称为主键.主键用表示一个特定的行.没有 ...