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. 15-资源等待类型sys.dm_os_wait_stats

    一.总结 1.网址 https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/ ...

  2. return new Promise的时候,不能带着.then()方法

    app.js return new Promise的同时带着.then()方法会出错 return出去的这个Promise,整体状态会显示pending,虽然详细里状态显示resolve,但是没有re ...

  3. 返回vector指针案例

    void prog1_static(void) { int pos = 9; // elem will hold the element's value vector<int> *elem ...

  4. c语言结构体以及结构体指针的使用

    结构体: 正常定义一个结构体: typedef struct node{ ]; int len; }Seq,*llink; 定义结构体指针: Seq *s;或者llink t;之后关于s与t的用法,其 ...

  5. 经常使用的js三元表达式

    语法:条件?表达式1:表达式2 .  条件的括号可要可不要的 let istrue = true; let a = (istrue === true) ? '我是true啊' : "我是fa ...

  6. 【Python网络】HTTP

    HTTP概述 HTTP(hypertext transport protocol),即超文本传输协议.这个协议详细规定了浏览器和万维网服务器之间互相通信的规则. HTTP就是一个通信规则,通信规则规定 ...

  7. B/S上传超大文件解决方案

    4GB以上超大文件上传和断点续传服务器的实现 随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求. 但是在很多情况下,平台运营方并没有大文件上 ...

  8. go基本使用

    一.第一个go语言程序 1.新建一个go项目:File--New--Progect 2.新建一个Go文件:File--New--Go File 3.在编辑区内写入下列代码: package main ...

  9. 快速乘(O(1))

    inline long long multi(long long x,long long y,long long mod) { long long tmp=(x*y-(long long)((long ...

  10. [CSP-S模拟测试]:Weed(线段树)

    题目描述 $duyege$的电脑上面已经长草了,经过辨认上面有金坷垃的痕迹.为了查出真相,$duyege$准备修好电脑之后再进行一次金坷垃的模拟实验.电脑上面有若干层金坷垃,每次只能在上面撒上一层高度 ...