zoukankan      html  css  js  c++  java
  • 二、Git

    1.Git

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而是一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必有服务器端软件支持。

    2.安装

    [root@jenkins ~]# yum install git -y
    [root@jenkins ~]# git --version
    git version 1.8.3.1
    
    

    3.仓库

    对应的就是一个目录,这个目录中的所有文件被git管理起来。以后会将一个项目的根目录,作为仓库。仓库中的每个文件的改动 都由git跟踪。

    私有:团队内部成员可访问
    公开:所有成员可访问
    
    #新建仓库并初始化
    [root@jenkins ~]# mkdir /springboot
    [root@jenkins /springboot]# git init
    
    [root@jenkins /springboot]# ll -a
    drwxr-xr-x   3 root root  36 Nov 17 11:42 .
    dr-xr-xr-x. 18 root root 262 Nov 17 11:06 ..
    drwxr-xr-x   7 root root 132 Nov 17 11:45 .git
    
    
    

    4.配置git

    [root@jenkins /springboot]# git config --global user.name "zzc"
    [root@jenkins /springboot]# git config --global user.email "zzc141145@126.com"
    [root@jenkins /springboot]# git config -l
    user.name=zzc
    user.email=zzc141145@126.com
    
    

    5.添加SSH公钥至Gitlab仓库

    [root@jenkins /springboot]# ssh-keygen
    
    [root@jenkins /springboot]# cat ~/.ssh/id_rsa.pub 
    ssh-rsa 
    ------- ------- 省略 ------ -------
    
    #复制秘钥至Gitlab仓库
    
    

    6.链接远程仓库

    [root@jenkins /springboot]# git remote add origin git@www.zzcweb.top:k8s/myjava.git
    
    #查看远程连接
    [root@jenkins /springboot]# git remote -v 
    origin	http://www.zzcweb.top/k8s/myjava.git (fetch)
    origin	http://www.zzcweb.top/k8s/myjava.git (push)
    
    #删除远程连接
    [root@jenkins /springboot]# git remote rm origin  
    
    

    7.将代码上传Gitlab仓库

    1、git add [文件路径|.(代表当前目录中的所有的文件)]  
    #提交一个文件到GIT缓冲区
    [root@jenkins /springboot]# git add index.html
    
    
    2、git status   #主要查看仓库目录下文件在git中提交的状态
    [root@jenkins /springboot]# git status
    # On branch master
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #	deleted:    index.html
    #
    # Untracked files:   #未跟踪文件
    #   (use "git add <file>..." to include in what will be committed)
    #
    #	index.html
    
    
    3、git rm --cached [文件路径]    #将文件在缓冲区中删除
    [root@jenkins /springboot]# git rm --cached index.html
    
    
    4、git commit  #将工作区内容提交至缓冲区
    参数 :
         -m : 添加备注信息
    [root@jenkins /springboot]# git commit -m '注释'
    [master e766396] 注释
     1 file changed, 5 deletions(-)
    
    
    6、git log:查看git日志
    [root@jenkins /springboot]# git log
    commit 2a0f285bcd849657667058eed8bb1034942981c6
    Author: zzc <zzc141145@126.com>
    Date:   Wed Nov 17 16:51:11 2021 +0800
    
        注释
    
    
    5、git push origin [分支]  #推送到远程仓库 
    参数:
    	-f : 强制推送
    #提交本地git缓冲区内的内容到远程仓库, 如果有冲突,可以使用--force参数强制提交		指定分支:git push origin master
     --   origin  是指远程
     --   master  是指远程仓库的分支  
    [root@jenkins /springboot]# git push origin master
    
    

    8.Git回滚

    git reset --hard [commit id]:回退版本信息
    #注意:
    
    [root@jenkins /springboot]# git log
    commit e0f4aac4e1971d625aa78f23381426a8230fcf83
    Author: zzc <zzc141145@126.com>
    Date:   Wed Nov 17 17:09:44 2021 +0800
    
        html
    
    commit 6866a3cf207558178eebbf15be73f6f5f16ea126
    Author: zzc <zzc141145@126.com>
    Date:   Wed Nov 17 17:09:00 2021 +0800
    
        yaml
    
    
    [root@jenkins /springboot]# git reset --hard 6866a3cf207558178eebbf15be73f6f5f16ea126
    HEAD is now at 6866a3c yaml
    
    
    [root@jenkins /springboot]# git log
    commit 6866a3cf207558178eebbf15be73f6f5f16ea126
    Author: zzc <zzc141145@126.com>
    Date:   Wed Nov 17 17:09:00 2021 +0800
    
        yaml
    
    #回滚后只是在本地Git缓冲区回滚,如果要远程仓库文件回滚需重新上传一次。分支被保护需在gitlab取消保护分支才能上传成功
    [root@jenkins /springboot]# git push -f origin master
    Total 0 (delta 0), reused 0 (delta 0)
    To git@www.zzcweb.top:k8s/myjava.git
     + b5690e4...6866a3c master -> master (forced update)
     
    #取消保护:仓库>>>>>>分支>>>>>>>>项目设置>>>>>>>>>Protected branches
    

    9.分支

    dev	  : 开发分支
    test  : 测试分支
    pre   : 预发布分支
    master:正式生产环境分支
    
    #查看分支(以*开头的分支名称为当前所在分支)
    git branch 
    参数: 
    	-a  查看所有的分支
    	
    [root@jenkins /springboot]# git branch 
    * master
    
    #创建分支(第一种方式)
    git branch [分支名称]
    
    [root@jenkins /springboot]# git branch dev
    [root@jenkins /springboot]# git branch 
      dev
      master
    * test
    
    #创建分支(第二种方式)
    git checkout -b [分支名称]
    
    [root@jenkins /springboot]# git checkout -b pre
    Switched to a new branch 'pre'
    [root@jenkins /springboot]# git branch 
      dev
      master
    * pre
      test
    ## 区别:
    	git branch 创建分支仍留在原分支
    	git checkout 创建分支,立即切换至新分支
    
    
    #切换分支
    git checkout [分支名称]
    
    [root@jenkins /springboot]# git checkout test
    Already on 'test'
    [root@jenkins /springboot]# git branch 
      master
    * test
    
    

    10.不同分支之间数据转换

    1.在655分支准备一份文件index.html
    [root@jenkins /springboot]# git branch 
    * 655
      dev
      master
      pre
      test
    [root@jenkins /springboot]# ll
    -rw-r--r-- 1 root root 210 Nov 17 18:45 index.html
    
    
    2.上传代码至远程仓库
    [root@jenkins /springboot]# git add index.html
    [root@jenkins /springboot]# git commit -m 'test'
    [root@jenkins /springboot]# git push origin 655
    
    3.切换到dev分支
    [root@jenkins /springboot]# git checkout dev
    [root@jenkins /springboot]# git branch 
      655
    * dev
      master
      pre
      test
    
    4.拉取远程仓库655分支的内容
    [root@jenkins /springboot]# git pull origin 655
    
    5.推送到远程dev分支
    [root@jenkins /springboot]# git push origin dev
    
    

    11.下载代码

    1.本地没有仓库
    仓库链接:Gitlab >>>>>> 项目 >>>>>>> 克隆 
      git clone [仓库链接]
    
    [root@jenkins ~]# git clone git@www.zzcweb.top:k8s/myjava.git
    [root@jenkins ~]# cd myjava/
    [root@jenkins ~/myjava]# ll -a
    drwxr-xr-x  3 root root  36 Nov 17 19:20 .
    dr-xr-x---. 5 root root 242 Nov 17 19:20 ..
    drwxr-xr-x  8 root root 163 Nov 17 19:20 .git
    -rw-r--r--  1 root root 121 Nov 17 19:20 index.yaml
    
    
    2.本地已存在仓库
    git pull [origin] [分支名称(默认当前分支)]
    
    [root@jenkins ~/myjava]# git pull
    remote: Enumerating objects: 5, done.
    remote: Counting objects: 100% (5/5), done.
    remote: Compressing objects: 100% (2/2), done.
    remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
    Unpacking objects: 100% (3/3), done.
    From www.zzcweb.top:k8s/myjava
       6866a3c..d3accc0  master     -> origin/master
    Updating 6866a3c..d3accc0
    Fast-forward
     index.yaml | 1 +
     1 file changed, 1 insertion(+)
    
    
  • 相关阅读:
    .c 文件取为.o文件
    wildcard 处理全部文件
    专家解读Linux操作系统内核中的GCC特性
    Yeoman:适合现代Web应用的现代工作流
    【转】nodejs
    node.js
    2019暑假集训 种树
    2019.6.5 NOIP2014 day2 t2 寻找道路
    2019.6.1 最优贸易
    2019.5.11 海淀区赛之杯子
  • 原文地址:https://www.cnblogs.com/backz/p/15568903.html
Copyright © 2011-2022 走看看