zoukankan      html  css  js  c++  java
  • Git工具使用

    GIT(分布式版本控制系统)

    Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git的读音为/gɪt/。
    Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
    Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 很多 Freedesktop 的项目迁移到了 Git 上。
    废话不多少直接撸起来0.0~~~

    1.安装git

    在linux下安装git工具很简单一条命令就可以;
    首先检查是否有安装:
    [root@controller ~]# rpm -aq git
    git-1.8.3.1-12.el7_4.x86_64         //可以看到该系统上已经安装了git
    

    如果未安装则运行以下命令即可:

    yum install -y git
    

     2.版本库创建

    创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:

    [root@controller ~]# mkdir git_db 
    [root@controller ~]# cd git_db/
    [root@controller git_db]# git init Initialized empty Git repository in /root/git_db/.git/ [root@controller git_db]# ls -a . .. .git

     git init命令生成一个版本库,我们可以看到提示”Initialized empty Git repository“ 是说这是一个空的仓库,可以通过ls -a命令查看隐藏的目录。

    接下来我们在当前目录(/root/git_db/)下编写一个文档,记住一定要到git init 生成版本库的目录下创建,不然git无法识别。

    [root@controller git_db]# cat first_file.txt 
    hello git 
    这是第一个版本
    

    下面将一个文件放到Git仓库只需要两步。

    第一步:用命令git add告诉Git,把文件添加到仓库:

    [root@controller git_db]# git add first_file.txt 
    You have new mail in /var/spool/mail/root
    [root@controller git_db]# 
    

     没有输入其他内容说明添加成功。

    第二步:用命令git commit告诉Git提交说明,把文件提交到仓库:(这一步是必须的)

    [root@controller git_db]# git commit -m "this is my fisrt git file"
    
    *** Please tell me who you are.
    
    Run
    
      git config --global user.email "you@example.com"
      git config --global user.name "Your Name"
    
    to set your account's default identity.
    Omit --global to set the identity only in this repository.
    
    fatal: unable to auto-detect email address (got 'root@controller.(none)')
    You have new mail in /var/spool/mail/root
    

     我们可以看到提示出错无法提交,原因是没有设置名字和邮件地址Git仓库无法发送,我们需要做的是按照Run下提示的代码运行即可。

    [root@controller git_db]# git config --global user.email "xxxx@qq.com"
    [root@controller git_db]# git config --global user.name "alai"    
     
    [root@controller git_db]# git commit -m "this is my fisrt git file"         
    [master (root-commit) a86e828] this is my fisrt git file
     1 file changed, 2 insertions(+)
     create mode 100644 first_file.txt
    

     再次运行commit 命令可以看到已经成功上传Git仓库。

    3.代码回滚设置

    修改文档

    [root@controller git_db]# cat first_file.txt 
    hello git 
    这是第二个版本
    

     现在,运行git status命令看看结果:

    [root@controller git_db]# git status
    # On branch master
    # Changes not staged for commit:
    #   (use "git add <file>..." to update what will be committed)
    #   (use "git checkout -- <file>..." to discard changes in working directory)
    #
    #       modified:   first_file.txt
    #
    no changes added to commit (use "git add" and/or "git commit -a")
    

     虽然Git告诉我们first_file.txt被修改了,但是不清楚修改了什么内容。需要用git diff这个命令看看:

    [root@controller git_db]# git diff first_file.txt 
    diff --git a/first_file.txt b/first_file.txt
    index 680655c..407ee40 100644
    --- a/first_file.txt
    +++ b/first_file.txt
    @@ -1,2 +1,2 @@
     hello git 
    -这是第一个版本
    +这是第二个版本
    

     输出中+号显示的就是修改或新增的内容,-号显示的就是去掉或被修改的内容

    我们再次提交到Git仓库上:

    [root@controller git_db]# git add .     //.表示当前目录下所有改变的文档
    You have new mail in /var/spool/mail/root
    [root@controller git_db]# git commit -m "changes"
    [master 25d561b] changes
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    [root@controller git_db]# git status
    # On branch master
    nothing to commit, working directory clean
    

    在Git中,我们用git log命令查看历史记录:

    [root@controller git_db]# git log
    commit 25d561b0a53a764acf15b06a53ffab34598d455e
    Author: alai <1259525@qq.com>
    Date:   Sun Feb 11 16:41:56 2018 +0800
    
        changes
    
    commit a86e82810819202830f618440fbf4acaf3114498
    Author: alai <1259525@qq.com>
    Date:   Sun Feb 11 16:28:56 2018 +0800
    
        this is my fisrt git file
    

     加上--pretty=oneline参数简化输出:

    [root@controller git_db]# git log --pretty=oneline
    25d561b0a53a764acf15b06a53ffab34598d455e changes
    a86e82810819202830f618440fbf4acaf3114498 this is my fisrt git file
    

     第一列是commit id(版本号),第二列是commit。

    开始回滚

    首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。使用git reset --hard命令:

    #查看当前版本为25d。。
    [root@controller git_db]# git reset --hard HEAD
    HEAD is now at 25d561b changes
    You have new mail in /var/spool/mail/root
    [root@controller git_db]# cat first_file.txt 
    hello git 
    这是第二个版本
    
    #退回上一个版本
    [root@controller git_db]# git reset --hard HEAD^
    HEAD is now at a86e828 this is my fisrt git file
    [root@controller git_db]# cat first_file.txt    
    hello git 
    这是第一个版本
    

     这是我们又想回到最新的那个版本,你通过命令git log --pretty=oneline查看已经没有了,这时候该怎么办呢,翻日志找到该版本的commit id 命令如下:

    [root@controller git_db]# git reset --hard 25d561   //commit id不必写全 git会自动查询
    HEAD is now at 25d561b changes
    [root@controller git_db]# cat first_file.txt      
    hello git 
    这是第二个版本
    
  • 相关阅读:
    西服定制_男装定制_礼服定制【乐裁】专业首选的全国西服定制商城
    简介 | 北京大学校友创业联合会
    脱颖而出_百度百科
    时装剧
    高龄“潮男”优衣库老板柳井正_榜样_奢华主义_YOKA时尚网
    [女装纸样] 《无私奉献》:看数据知道人的体型--看身高体重知道人体数据---个人绝技不断更新
    瑞邦洋服·私人定制 » 瑞邦头等舱
    爱上MVC~AuthorizeAttribute验证不通过如何停止当前上下文
    Js~(function(){})匿名自执行方法的作用
    Js~动态判断PC和手机浏览器
  • 原文地址:https://www.cnblogs.com/Dev0ps/p/8442681.html
Copyright © 2011-2022 走看看