zoukankan      html  css  js  c++  java
  • 06.升级git版本及命令学习

    博客为日常工作学习积累总结:

    1.升级git版本:

    参考博客:https://blog.csdn.net/yuexiahunone/article/details/78647565由于新的版本可以使用gitea功能所以升级git版本,centos7默认git版本如下:

    [root@git ~]# git --version
    git version 1.8.3.1

    2.yum默认安装不适合生成环境需要编译安装此步奏忽略:

    yum命令安装git是最简单的,直接键入命令安装就可以了

    yum install git -yy

    3.编译安装:

    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

    wget https://github.com/git/git/archive/v2.9.5.zip

    unzip v2.9.5.zip

    cd git-2.9.5

    make prefix=/usr/local/git all

    make prefix=/usr/local/git install

    rm -rf /usr/bin/git

    ln -s /usr/local/git/bin/git /usr/bin/git

    git --version

     

     

    [root@git git-2.9.5]# git --version
    git version 2.9.5

     

    4.初始化:

    [root@git ~]# git config

    git help

    [root@git ~]# mkdir test

    [root@git ~]# cd test/

    [root@git learngit]# git init
    Initialized empty Git repository in /root/learngit/.git/

    [root@git learngit]# git config --list
    core.repositoryformatversion=0
    core.filemode=true
    core.bare=false
    core.logallrefupdates=true

    5.配置git目录:

    [root@git learngit]# git config --global user.name "Eric-xgc"
    [root@git learngit]# git config --global user.email 741017474@qq.com

    [root@git learngit]# git config --list
    user.name=Eric-xgc
    user.email=741017474@qq.com
    core.repositoryformatversion=0
    core.filemode=true
    core.bare=false
    core.logallrefupdates=true

    6.git应用原理:

     图片来源老男孩教育郭宏泽

     

     

    git add

    git status

    git status -s

    git diff

    git diff --staged

    git commit

    git reset

    git rm

    git rm --cached README

    git mv

    7.测试命令功能:

    1.初始化后

    [root@git test]# git status
    On branch master

    Initial commit

    nothing to commit (create/copy files and use "git add" to track)

    2.新增一个文件

    [root@git test]# vim index.html
    <h1>welcome to ht <h1>

    [root@git test]# git status     
    On branch master

    Initial commit

    Untracked files:
      (use "git add <file>..." to include in what will be committed)

            index.html

    nothing added to commit but untracked files present (use "git add" to track)

    3.提交一个文件到暂存区

    [root@git test]# git add index.html
    [root@git test]# git status        
    On branch master

    Initial commit

    Changes to be committed:
      (use "git rm --cached <file>..." to unstage)

            new file:   index.html

    4.提交到本地仓库

    [root@git test]# git commit -m "first commit"
    [master (root-commit) 6083db0] first commit
     1 file changed, 1 insertion(+)
     create mode 100644 index.html

    [root@git test]# git status
    On branch master
    nothing to commit, working tree clean

    5.查看提交日志

    [root@git test]# git log
    commit 6083db06d756ef50053cb439e55144242f95b5a8
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:31:43 2019 +0800

    first commit

    6.测试rm命令

    [root@git test]# vim pay.html
    pay modle

     

    [root@git test]# git status
    On branch master
    Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)

            new file:   pay.html

    [root@git test]# vim news.html
    news center

    [root@git test]# git add news.html

    [root@git 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@git test]# git rm --cached pay.html
    rm 'pay.html'

    [root@git 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@git test]# git commit -m "news"
    [master 33a1733] news
     1 file changed, 1 insertion(+)
     create mode 100644 news.html
    [root@git test]# git log
    commit 33a17331c4060afd85d303dccad8406f8c74037b
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:46:44 2019 +0800

        news

    commit 6083db06d756ef50053cb439e55144242f95b5a8
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:31:43 2019 +0800

        first commit

     

    [root@git 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@git test]# vim pay.html
    pay modle

    22222222
    bug

     

    [root@git test]# git add pay.html
    [root@git test]# git commit -m "pay"
    [master 2e667e5] pay
     1 file changed, 4 insertions(+)
     create mode 100644 pay.html

    [root@git test]# git log
    commit 2e667e57e89b6794592563c14ae52cf2da3c8736
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:48:54 2019 +0800

        pay

    commit 33a17331c4060afd85d303dccad8406f8c74037b
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:46:44 2019 +0800

        news

    commit 6083db06d756ef50053cb439e55144242f95b5a8
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:31:43 2019 +0800

        first commit

    7.分支管理

    业务场景:当需要开发新的模块时会经常改动代码,不能影响主分支master

    创建分支:about

    git branch about

    [root@git test]# git branch about

    切换分支

    git checkout about

    [root@git test]# git checkout about
    Switched to branch 'about'

    [root@git test]# git status
    On branch about
    nothing to commit, working tree clean

     测试分支与主分支:

    [root@git test]# vim about.html
    about us

    [root@git test]# git add .

    [root@git test]# git commit -m "about"

    测试about分支有4次提交

    [root@git test]# git log
    commit 6a24c259931e8401ac46448d4873f77eae167de9
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 15:46:34 2019 +0800

        about

    commit 2e667e57e89b6794592563c14ae52cf2da3c8736
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:48:54 2019 +0800

        pay

    commit 33a17331c4060afd85d303dccad8406f8c74037b
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:46:44 2019 +0800

        news

    commit 6083db06d756ef50053cb439e55144242f95b5a8
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:31:43 2019 +0800

        first commit

     

    切回主分支查看log只有3次提交

    [root@git test]# git checkout master
    Switched to branch 'master'
    [root@git test]# git log
    commit 2e667e57e89b6794592563c14ae52cf2da3c8736
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:48:54 2019 +0800

        pay

    commit 33a17331c4060afd85d303dccad8406f8c74037b
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:46:44 2019 +0800

        news

    commit 6083db06d756ef50053cb439e55144242f95b5a8
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:31:43 2019 +0800

        first commit

     回到测试分支

    [root@git test]# git checkout about
    Switched to branch 'about'
    [root@git test]# git branch
    * about
      master

    [root@git test]# git branch -v
    * about  6a24c25 about
      master 2e667e5 pay

    8. 将测试分支合并到主分支:

     [root@git test]# vim about2.html
    about2

    [root@git test]# git add .
    [root@git test]# git commit -m "about2"
    [about 0283739] about2
     1 file changed, 1 insertion(+)
     create mode 100644 about2.html

    测试分支有5次提交
    [root@git test]# git log
    commit 02837391d9b360902f8599ca91ad83eaf2560324
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 15:55:49 2019 +0800

        about2

    commit 6a24c259931e8401ac46448d4873f77eae167de9
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 15:46:34 2019 +0800

        about

    commit 2e667e57e89b6794592563c14ae52cf2da3c8736
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:48:54 2019 +0800

        pay

    commit 33a17331c4060afd85d303dccad8406f8c74037b
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:46:44 2019 +0800

        news

    commit 6083db06d756ef50053cb439e55144242f95b5a8
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:31:43 2019 +0800

        first commit

     

     主分支还是3次提交

    [root@git test]# git checkout master
    Switched to branch 'master'
    [root@git test]# git log
    commit 2e667e57e89b6794592563c14ae52cf2da3c8736
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:48:54 2019 +0800

        pay

    commit 33a17331c4060afd85d303dccad8406f8c74037b
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:46:44 2019 +0800

        news

    commit 6083db06d756ef50053cb439e55144242f95b5a8
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:31:43 2019 +0800

        first commit

    将测试分支merge到主分支:

    [root@git test]# git merge about
    Updating 2e667e5..0283739
    Fast-forward
     about.html  | 1 +
     about2.html | 1 +
     2 files changed, 2 insertions(+)
     create mode 100644 about.html
     create mode 100644 about2.html

    查看主分支log

    [root@git test]# git checkout master
    Already on 'master'
    [root@git test]# git log
    commit 02837391d9b360902f8599ca91ad83eaf2560324
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 15:55:49 2019 +0800

        about2

    commit 6a24c259931e8401ac46448d4873f77eae167de9
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 15:46:34 2019 +0800

        about

    commit 2e667e57e89b6794592563c14ae52cf2da3c8736
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:48:54 2019 +0800

        pay

    commit 33a17331c4060afd85d303dccad8406f8c74037b
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:46:44 2019 +0800

        news

    commit 6083db06d756ef50053cb439e55144242f95b5a8
    Author: Eric-xgc <741017474@qq.com>
    Date:   Mon Apr 1 14:31:43 2019 +0800

        first commit

     

    查看被merged的分支:

    [root@git test]# git branch --merged
      about
    * master

    [root@git test]# git branch --no-merged

    [root@git test]# git branch test
    [root@git test]# git branch --merged   
      about
    * master
      test

     [root@git test]# vim test.html
    test

    testi1

    [root@git test]# git add .
    [root@git test]# git commit -m "test2"

     [root@git test]# git branch --merged
      about
    * master
    [root@git test]# git branch --no-merged
      test

     

    退出git log

    在英文状态下按q退出

     9.checkerout命令

     

    git checkerout  命令:用于切换分支。

    [root@git test]# git checkout master

    回滚本地目录修改的文件

    git checkerout  -- 修改的文件

     git checkout -- index.html   

     测试用例:

    [root@git test]# vim index.html
    <h1>welcome to ht <h1>

    22222

    [root@git test]# 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:   index.html

    no changes added to commit (use "git add" and/or "git commit -a")

    [root@git test]#  git checkout -- index.html
    [root@git test]# git status                  
    On branch master
    nothing to commit, working tree clean

    修改被撤销了,

    [root@git test]# cat index.html
    <h1>welcome to ht <h1>

     

    10.reset 回滚暂存区修改的文件

     

    git log得到的id号
    git reset --hard id号

    所有的操作记录

    [root@git test]# git reflog
    0283739 HEAD@{0}: checkout: moving from test to master
    3a525df HEAD@{1}: checkout: moving from master to test
    0283739 HEAD@{2}: checkout: moving from test to master
    3a525df HEAD@{3}: commit: test2
    eed3382 HEAD@{4}: commit: test
    0283739 HEAD@{5}: checkout: moving from master to test
    0283739 HEAD@{6}: checkout: moving from master to master
    0283739 HEAD@{7}: merge about: Fast-forward
    2e667e5 HEAD@{8}: checkout: moving from about to master
    0283739 HEAD@{9}: commit: about2
    6a24c25 HEAD@{10}: checkout: moving from master to about
    2e667e5 HEAD@{11}: checkout: moving from about to master
    6a24c25 HEAD@{12}: commit: about
    2e667e5 HEAD@{13}: checkout: moving from master to about
    2e667e5 HEAD@{14}: commit: pay
    33a1733 HEAD@{15}: commit: news
    6083db0 HEAD@{16}: commit (initial): first commit

    git checkout   6083db0

    8.远程仓库  

     

     [root@git ~]# git clone https://github.com/guohongze/scripts.git

    [root@git ~]# cd scripts/
    [root@git scripts]# ls
    mysql  nfs  nginx  php  README.md  redis  svn  zookeeper

    [root@git scripts]# git status
    On branch master
    Your branch is up-to-date with 'origin/master'.
    nothing to commit, working tree clean

     

    [root@git scripts]# git commit -m "readme update-eric"
    On branch master
    Your branch is up-to-date with 'origin/master'.
    Changes not staged for commit:
            modified:   README.md

    no changes added to commit
    [root@git scripts]# git remote
    origin
    [root@git scripts]# git remote -v
    origin  https://github.com/guohongze/scripts.git (fetch)
    origin  https://github.com/guohongze/scripts.git (push)

    [root@git scripts]# git push origin master

     

    /root/learngit/test

    [root@git test]# git remote add orgin https://github.com/Eric-xgc/test.git
    [root@git test]# git remote -v
    orgin   https://github.com/Eric-xgc/test.git (fetch)
    orgin   https://github.com/Eric-xgc/test.git (push)

    打标签:

    [root@git test]# git tag -a v1.0 -m "feature finished"
    [root@git test]# git tag
    v1.0

     

  • 相关阅读:
    20080619 SQL SERVER 输入 NULL 的快捷键
    20090406 Adobe的“此产品的许可已停止工作”错误的解决办法
    20080908 Office Powerpoint 2007 不能输入中文的解决办法
    20080831 ClearGertrude Blog Skin 's cnblogs_code class
    20080603 Facebook 平台正式开放
    20080519 安装 Microsoft SQL Server 2000 时提示 创建挂起的文件操作
    test
    Linux—fork函数学习笔记
    SOA的设计理念
    Why BCP connects to SQL Server instance which start with account of Network Service fail?
  • 原文地址:https://www.cnblogs.com/ericchengge677/p/10635510.html
Copyright © 2011-2022 走看看