zoukankan      html  css  js  c++  java
  • 使用git进行版本控制

    一、git基本介绍

    Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是目前世界上最先进的分布式版本控制系统。

    与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

     

    什么是版本库?

    版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”

     

    git的作用

    git就是管理我们这个版本库的管家,其主要作用保证项目代码在开发阶段, 任何代码都不会丢失. 而且可以快速获取任何阶段开发代码.

     

    gitsvn的区别

    以前的版本控制入CVSSVN等都是集中控制管理的,也就是有一个中央服务器,大家都把代码提交到中心节点git是分布式的版本控制工具,也就是说没有中央服务器,每个节点的地位平等。

    什么是分布式?

    分布式处理是将不同地点的,或具有不同功能的,或拥有不同数据的多台计算机通过通信网络连接起来,在控制系统的统一管理控制下,协调地完成大规模信息处理任务的计算机系统

     

    二、git安装

    最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑。不过,慢慢地有人把它移植到了Windows上。现在,Git可以在Linux、Unix、Mac和Windows这几大平台上正常运行了。

    在linux安装git

    (1)在Debian或Ubuntu Linux,通过一条sudo apt-get install git就可以直接完成Git的安装

    #首先,你可以试着输入git,看看系统有没有安装Git:
    $ git The program
    'git' is currently not installed. You can install it by typing: sudo apt-get install git

    (2)在centos上安装git

    第一步:事先获取安装包,并把安装包上传到centos服务器上。

    第二步:挂载光驱

    mount /dev/cdrom /media/CentOS

    第三步:安装软件依赖

    yum --disablerepo=* --enablerepo=c6-media install gcc gcc-c++ perl perl-devel curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel tcl build-essential tk gettext

    第四步:解压-编译-安装

    tar zxvf git-2.9.0.tar.gz
    cd git-2.9.0
    
    make configure   #提示错误没有configure时执行
    ./configure --prefix=/usr/local/git
    make && make install

    三、git基本使用

    1、Git 工作区、暂存区和版本库仓库)介绍

    (1)工作区:就是你在电脑里能看到的目录。

    (2)暂存区缓存区英文叫stage, index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

    暂存区是属于版本库中的一部分。

    (3)版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。.git中的head/master是分支,是版本库。

     

    2、git快速体验

    (1)创建仓库

    mkdir gitdir  #创建一个文件夹,准备作为版本库
    
    cd gitdir
    
    git init   #初始化版本库

    (2)完成一些基本的配置

    配置支持三个层级:

    系统配置--system, 针对于所有的用户的配置

    git config --systerm user.name ‘名字’;

    全局配置(用户级) global, 针对于当前系统的登录用户配置生效, 无论该用户管理几个git版本库项目配置是一致的.

    git config --global user.name ‘名字’;

    项目(本地配置)--local, 仅仅针对于当前项目起作用.

    git config --local user.name ‘名字’;

    git config --global user.name 'dominik'   #配置用户名
    
    git config --global user.email 'dominik@126.com'  #配置用户邮箱

    (3)查看配置

    git config --list

    (4)将文件添加到暂存区

    git add .    #添加所有文件
    
    git add filename  #添加单个文件

    (5)查看状态

    git status

      git status -s    #简易的查看版本库的状态

    (6)提交文件

    git commit .    #提交所有文件
    
    git commit filename  #提交单个文件

    (7)撤销修改文件(没有添加到暂存区)

    git checkout -- filename

    (8)添加到暂存区了,怎样撤销修改

    git reset head  #先取消暂存

    git checkout -- filename  #在撤销修改

    (9)查看日志

    git log

     git reflog   #查看关联日志

     git log -p(更加详细的查看-可以查看它的修改的内容),它会分页显示,按q键退出

      git log --pretty=oneline,只显示版本号

      git log --after ‘2020-1-1’,显示1月1日之后的日志

      git log --before ‘2020-1-1’,显示1月1日之前的日志

      git log --author ‘xxx’,显示作者是是哪一位

     

    (10)版本回退

    git reset --hard 版本号

    (11)查看文件的差异和改动

    git diff
    
    
    尚未缓存的改动:git diff 
    查看已缓存的改动: git diff --cached 
    查看已缓存的与未缓存的所有改动:git diff HEAD 
    显示摘要而非整个 diff:git diff --stat 

    (12)删除跟踪

    git rm filename
    具体实例1:删除文件rm file,怎样撤销删除,直接使用 git checkout --file 撤销删除。

     使用git rm file删除文件,先取消暂存,然后在撤销删除

     git reset head

    git checkout --file

    (13)撤销修改(版本回退)

    git reset  --hard HEAD^
    
    使用HEAD指针的相对操作完成重置
    HEAD^    , 前1个版本, HEAD~1
    HEAD^^, 前2个版本, HEAD~2
    HEAD^^^, 前3个版本, HEAD~3

    四、远程多人协作

     具体流程常用命令

    1、linux中创建一个远程仓库(服务器)

    2、在window中克隆linux中仓库(git clone)

    git clone ssh://root@192.168.234.128:22/gits/A

    改动后:
    git add .
    git commit -m "修改备注" .

    3、推送远程(push

     #推送的时候,要和远程服务器建立一个连接。

     git remote add origin ssh://root@192.168.234.128:22/gits/A


    git push origin master #origin(远程仓库) master(本地仓库)

    注意:git仓库默认拒绝远程push,需在 .git/config加上
    [receive]
        denyCurrentBranch = ignore


    4、从远程拉取(pull)

    git pull ssh://root@192.168.234.128:22/gits/A

     5、提交后git服务器不会自动更新版本

    1)通过 git log查看所有提交版本

    2)切换到最新版本完成更新

    五、分支管理 

     1、创建与合并分支

    在Git里,有个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向mastermaster才是指向提交的,所以,HEAD指向的就是当前分支。

     一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:

     

    每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长, 当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:

    假如我们在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:

     

    所以Git合并分支也很快!就改改指针,工作区内容也不变!

    合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支:

     

    2、具体代码操作

    ①创建dev分支,然后切换到dev分支:

    $ git checkout -b dev
    Switched to a new branch 'dev'

    git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

    $ git branch dev
    $ git checkout dev
    Switched to branch 'dev'

    ②然后,用git branch命令查看当前分支(git branch命令会列出所有分支,当前分支前面会标一个*号。):

    $ git branch
    * dev
      master

    ③当我们在dev分支修改一个文件并且正常提交后,切回到master主分支,发现主分支的文件并没有发生改变

    ④合并分支(git merge命令用于合并指定分支到当前分支。)

    $ git merge dev
    Updating d17efd8..fec145a
    Fast-forward
     readme.txt |    1 +
     1 file changed, 1 insertion(+)

    ⑤合并完成后,就可以放心地删除dev分支了:

    $ git branch -d dev
    Deleted branch dev (was fec145a).

    六、idea集成git

    1、准备工作

    1)创建远程仓库

    2)添加合作开发用户

    被添加用户需手动确认

    2、配置idea

    1)配置github

    2)配置git

    3、push项目

    1)初始化本地仓库

    2)提交到缓存区

    3)提交到仓库

     

    4)push到远程仓库

    4、pull项目

     

  • 相关阅读:
    cli create ssl certkey
    开启HSTS让浏览器强制跳转HTTPS访问
    Down State Flush Feature
    tasklist、taskkill命令使用
    findstr 命令使用
    【批处理学习笔记】第十一课:常用DOS命令(1)
    【批处理学习笔记】第十课:批处理符号(3)
    【批处理学习笔记】第九课:批处理符号(2)
    【批处理学习笔记】第八课:批处理符号(1)
    【批处理学习笔记】第七课:简单的批处理命令(6)
  • 原文地址:https://www.cnblogs.com/dominik/p/10341505.html
Copyright © 2011-2022 走看看