• 1、GIT基础   

GIT是一个分布式版本管理系统,速度快,适合大规模,跨地区多人协同开。SVN是一个集中式版本管理系统。

(1)GIT生态

GIT分布式版本管理系统

Gitlab git私库解决方案

Github git公有库解决方案

 (2)Git安装

Centos:

yum install -y git

Ubuntu:

apt-get install git

Windows安装git bash

Linux编译安装

注意不要使用git 1.8以下版本,推荐使用2.7版本

①编译安装git
[root@linux-node1 ~]# yum install -y epel-release
安装依赖包:
[root@linux-node1 ~]# yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
[root@linux-node1 ~]# wget https://github.com/git/git/archive/v2.7.4.zip
[root@linux-node1 ~]# yum install -y unzip
[root@linux-node1 ~]# unzip git-v2.7.4.zip
[root@linux-node1 ~]# cd git-2.7.
[root@linux-node1 git-2.7.]# make prefix=/usr/local/git all
[root@linux-node1 git-2.7.]# make prefix=/usr/local/git install
[root@linux-node1 git-2.7.]# rm -rf /usr/bin/git
[root@linux-node1 git-2.7.]# ln -s /usr/local/git/bin/git /usr/bin/git
[root@linux-node1 git-2.7.]# git --version
git version 2.7. ②初始化仓库
[root@linux-node1 ~]# mkdir test
[root@linux-node1 ~]# cd test
[root@linux-node1 test]# git init #将test目录初始化仓库
[root@linux-node1 test]# git config --global user.name"*****"
[root@linux-node1 test]# git config --global user.email *******@qq.com 四个区域:
远程仓库<-->本地仓库<-->暂存区域<-->工作目录 四种状态
Untracked、Unmodified、Modified、Staged
Untracked(工作目录)-->git add -->Staged(暂存区)-->git commit版本-->Unmodified(本地仓库)-->Edit file-->Modified-->Stage the file-->Staged ③常用命令:
git add 加入暂存
git status 查看状态
git status -s 状态概览
git diff 尚未暂存的文件
git diff --staged 暂存区文件
git commit 提交更新
git reset 回滚
git rm 从版本库中移除
git rm --cached README 从暂存区中移除
git mv 相当于mv git rm git add 三个命令 使用演示:
[root@linux-node1 test]# touch index.html ==>创建文件
[root@linux-node1 test]# vim index.html
[root@linux-node1 test]# git status ==>此时文件处于工作目录中
位于分支 master 初始提交 未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容) index.html 提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
[root@linux-node1 test]# git add index.html ==>加入代码库
[root@linux-node1 test]# git status ==>此时文件处于暂存区
位于分支 master 初始提交 要提交的变更:
(使用 "git rm --cached <文件>..." 以取消暂存) 新文件: index.html [root@linux-node1 test]# git commit -m "first commit" ==>提交到本地仓库
[master(根提交) c6bc04f] first commit
file changed, insertions(+)
create mode index.html
[root@linux-node1 test]# git status
位于分支 master
无文件要提交,干净的工作区
[root@linux-node1 test]# git log
commit c6bc04f90d4ef442e2c4d5bc788b21de239332da ==>回滚需要的id
Author: ****** <******@qq.com>
Date: Fri Dec :: + first commit [root@linux-node1 test]# touch pay.html
[root@linux-node1 test]# vim pay.html
[root@linux-node1 test]# git add pay.html
[root@linux-node1 test]# git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) new file: pay.html [root@linux-node1 test]# touch news.html
[root@linux-node1 test]# echo "" > news.html
[root@linux-node1 test]# git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) new file: pay.html Untracked files:
(use "git add <file>..." to include in what will be committed) news.html [root@linux-node1 test]# git add news.html
[root@linux-node1 test]# git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) new file: news.html
new file: pay.html [root@linux-node1 test]# git rm --cached pay.html #将pay.html从暂存区移除
rm 'pay.html'
[root@linux-node1 test]# git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) new file: news.html Untracked files:
(use "git add <file>..." to include in what will be committed) pay.html [root@linux-node1 test]# git commit -m "news"
[master d83603a] news
file changed, insertion(+)
create mode news.html
[root@linux-node1 test]# git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed) pay.html nothing added to commit but untracked files present (use "git add" to track)
[root@linux-node1 test]# git log
commit d83603a56b8926630d31b46898e4b6d69293d946
Author:********
Date: Fri Dec :: + news commit c6bc04f90d4ef442e2c4d5bc788b21de239332da
Author: *****************
Date: Fri Dec :: + first commit
[root@linux-node1 test]# echo "" >> pay.html
[root@linux-node1 test]# git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed) pay.html nothing added to commit but untracked files present (use "git add" to track)
[root@linux-node1 test]# git add pay.html
[root@linux-node1 test]# git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) new file: pay.html [root@linux-node1 test]# git commit -m "pay modelue"
[master e55a302] pay modelue
file changed, insertions(+)
create mode pay.html
[root@linux-node1 test]# git status
On branch master
nothing to commit, working directory clean
[root@linux-node1 test]# git log
commit e55a302e11d967fd25eac1cce8b6c7bed732019b
Author:******************
Date: Fri Dec :: + pay modelue commit d83603a56b8926630d31b46898e4b6d69293d946
Author: ******************
Date: Fri Dec :: + news commit c6bc04f90d4ef442e2c4d5bc788b21de239332da
Author: ******************
Date: Fri Dec :: + first commit
  • 2、分支管理

[root@linux-node1 test]# git status
On branch master
nothing to commit, working directory clean 建分支,开发新功能是不能在master分支上开发
[root@linux-node1 test]# git branch about #创建分支
[root@linux-node1 test]# git status
On branch master
nothing to commit, working directory clean
[root@linux-node1 test]# git checkout about #切换分支
Switched to branch 'about'
[root@linux-node1 test]# git status
On branch about
nothing to commit, working directory clean
[root@linux-node1 test]# git log #创建的分支是在master分支当前的状态进行创建的。所以在about分支上也会有master的记录
commit e55a302e11d967fd25eac1cce8b6c7bed732019b
Author: ************
Date: Fri Dec :: + pay modelue commit d83603a56b8926630d31b46898e4b6d69293d946
Author: ************
Date: Fri Dec :: + news commit c6bc04f90d4ef442e2c4d5bc788b21de239332da
Author: ************
Date: Fri Dec :: + first commit [root@linux-node1 test]# git branch
* about
master
[root@linux-node1 test]# touch about.html
[root@linux-node1 test]# echo "about us" >> about.html
[root@linux-node1 test]# git add .
[root@linux-node1 test]# git commit -m "about"
[about 08b200a] about
file changed, insertion(+)
create mode about.html
[root@linux-node1 test]# git log
[root@linux-node1 test]# git checkout master #切换到master分支
Switched to branch 'master'
[root@linux-node1 test]# git log
[root@linux-node1 test]# git checkout about #切换到about分支
[root@linux-node1 test]# echo "about2" > about2.html
[root@linux-node1 test]# git add .
[root@linux-node1 test]# git commit -m "about2"
[root@linux-node1 test]# git log
[root@linux-node1 test]# git checkout master
[root@linux-node1 test]# git log
[root@linux-node1 test]# git merged about #在master分支上合并about分支
[root@linux-node1 test]# git log
[root@linux-node1 test]# git branch test #创建test分支
[root@linux-node1 test]# git checkout test
[root@linux-node1 test]# touch "test" > test.html
[root@linux-node1 test]# git add .
[root@linux-node1 test]# git commit -m "test"
[root@linux-node1 test]# git checkout master
[root@linux-node1 test]# git branch --merged #查看已经合并的分支
[root@linux-node1 test]# git branch --no-merged #查看未合并的分支 分支命令
git branch例出分支
git branch -v
git branch --merged查看哪些分支被合并
git branch --no-merged查看哪些分支未被合并
git branch -d testling删除分支
git checkout切换分支
git merged融合分支

Gitlab+Jenkins学习之路(一)之Git基础的更多相关文章

  1. Gitlab+Jenkins学习之路(五)之git merge和git rebase的区别

    命令行测试 [root@linux-node1 ~]# mkdir testing [root@linux-node1 ~]# [root@linux-node1 ~]# cd testing/ [r ...

  2. Gitlab+Jenkins学习之路(八)之发布maven项目及按版本发布

    一.什么是Maven maven是一个项目管理和综合工具.Maven提供给开发人员构建一个完整的生命周期框架. 开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期 ...

  3. Gitlab+Jenkins学习之路(十一)之Jenkins自动触发构建和发布

    思路图: 一.下载gitlab plugin jenkins-->系统管理-->管理插件-->下载并安装gitlab plugin 二.配置gitlab认证 路径:Jenkins-- ...

  4. Gitlab+Jenkins学习之路(十三)之发布Java项目到tomcat

    一.新建一台虚拟机安装tomcat ()安装JDK 官网下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downl ...

  5. Gitlab+Jenkins学习之路(十四)之自动化脚本部署实践

    目录 一.环境说明和准备 1.环境说明 2.服务器准备工作 二.发布脚本编写 1.自动化部署流程设计 2.自动化部署脚本编写 三.发布测试 1.开发机和github添加ssh信任 2.克隆项目到开发机 ...

  6. Gitlab+Jenkins学习之路(三)之gitlab权限管理--issue管理

    1.创建Group,User,Project 创建一个组,组名为java Group path http://192.168.56.11/java Visibility Level: #为权限级别,一 ...

  7. Gitlab+Jenkins学习之路(四)之gitlab备份和恢复

    gitlab的备份和恢复 (1)创建备份目录,并授权 [root@linux-node1 ~]# mkdir /data/backups/gitlab -p [root@linux-node1 ~]# ...

  8. Gitlab+Jenkins学习之路(六)之Jenkins部署、升级和备份

    一.什么是持续集成? (1)Continuous integration(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集 ...

  9. Gitlab+Jenkins学习之路(七)之发布PHP项目

    使用git+jenkins实现持续集成 Step1:构建一个自由风格的php-deploy Step2:Gernal配置,丢弃旧的构建,防止jenkins构建较多之后变臃肿 Step3:源码管理:这里 ...

随机推荐

  1. [翻译] JFMinimalNotifications

    JFMinimalNotifications This is an iOS UIView for presenting a beautiful notification that is highly ...

  2. Python学习---IO的异步[tornado模块]

    tornado是一个异步非阻塞的WEB框架.它的异步非阻塞实际上就是用事件循环写的. 主要体现在2点: 1. 作为webserver可以接收请求,同时支持异步处理请求.Django只能处理完成上一个请 ...

  3. PHP 实现单点登录

    1.准备两个虚拟域名 127.0.0.1  www.openpoor.com 127.0.0.1  www.myspace.com 2.在openpoor的根目录下创建以下文件 index.PHP [ ...

  4. Xman资格选拔赛-web

    variacover 这道题一打开就是源码,主要就是根据源码构造url.其中,它接收的参数只有b,但源码中要获取flag的关键参数是a[0].parse_str()函数的作用是把查询字符串解析到变量中 ...

  5. November 23rd 2016 Week 48th Wednesday

    I always like walking in the rain, so no one can see me crying. 我一直喜欢在雨中行走,那样就没人能看到我的眼泪. I like walk ...

  6. php分享一个n维数组转一维的函数

    好玩,所以做了这么一个函数,来输出唐诗 函数如下 function changearr($arr){ if(count($arr)==count($arr,1)){ return $arr; } el ...

  7. 解决数据库自增ID的问题

    (1)设置主键自增为何不可取这样的话,数据库本身是单点,不可拆库,因为id会重复. (2)依赖数据库自增机制达到全局ID唯一使用如下语句:REPLACE INTO Tickets64 (stub) V ...

  8. spring中MessageSource的配置使用方法3--ResourceBundleMessageSource【转】

    本文转载仅供自己学习收录,不做任何商业用途,如有需要请访问原地址:http://blog.csdn.net/qyf_5445/article/details/8124431 ApplicationCo ...

  9. VMWare虚拟机下为Ubuntu 12.04.1配置静态IP(NAT方式)

    背景 在虚拟机下运行操作系统,尤其是Linux系统已经是非常常见的做法.有时你想在虚拟机下搭建一个(模拟)服务器来供主机访问,比如搭建一个telnet/ssh.此时你会发现,每次启动虚拟机,VMWar ...

  10. Golang Http Server源码阅读

    建议看这篇文章前先看一下net/http文档 http://golang.org/pkg/net/http/ net.http包里面有很多文件,都是和http协议相关的,比如设置cookie,head ...