zoukankan      html  css  js  c++  java
  • Git基础

      Git分布式版本管理系统

      Gitlab 私有代码管理

      Githua 公有代码管理

    1,安装git

      系统环境

      

      yum -y install git

      yum安装版本为1.8版本,生产最好编译安装,参考:Git源码安装

    2,配置信息

      git config --global user.name "liuyueming"

      git config --global user.email "274670459@qq.com"

      通过命令查看配置信息

      git config --list

      git工作的四个区域

      四种状态

      Untracked:未被追踪的文件,还没有被纳入版本管理

      Stage: 暂存区

      Unmodified: 未被修改的状态,commit以后保存在本地仓库里面

      modified: 编辑以后就变成修改状态

      

      常用命令

      

      git分支管理 

      创建分支about

    git branch about
    

      查看分支(没有切换指针还在master分支)

    git branch

      切换分支

    git checkout about
    

      开发一个about模块

     vim about.html
    

      提交

    git add about.html 
    git commit -m "add about.html"
    

      切换到master分支的提交还是停留在之前的提交

      删除分支

    git branch -d about
    

      合并分支(需要切换到master上面合并about分支)

    git merge about
    

      查看log就有了分支about的提交信息

      查看哪些分支被merge过来

    git branch --merged
    

      查看哪些分支没有被merge过来

    git branch --no-merged
    

      PS:如果是新建一个分支没有提交因为没有信息所以不会显示在--no-merged,除非有提交

      撤销对文件的修改

    git checkout --file.ext

      修改一个文件,在没有add之前可以使用该命令撤销刚才的修改

      

      git高级管理

       git reset回滚

      修改index.html和new.html文件并且add一下new.html文件,查看状态

      news.html在缓存区可以通过以下命令撤出缓存区

    git reset HEAD news.html
    

      

      git本地与远程图示

    3,创建版本库

           mkdir  /learngit

      cd /learngit

      进入新建目录用过git init命令把这个目录变成Git可以管理的仓库

      git init

      生成隐藏文件 .git用来跟踪管理版本库

    4,把文件添加到版本库

      所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。

     要求所有文档都是纯文本格式

          编写一个readme.txt

    This is my learn git
    Git is goog               
    

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

      没有任何提示

      第二步 用命令git commit告诉Git,把文件提交到仓库

    PS:-m后面添加注释,最好每次都详细描叙修改内容

      也可以一次性提交多个文件

    $ git add file1.txt
    $ git add file2.txt file3.txt
    $ git commit -m "add 3 files."
    

    5,修改文件

      修改readme.txt增加一个单词distributed

       运行git status命令看结果

      

    [root@salt-master learngit]# git status
    # 位于分支 master
    # 尚未暂存以备提交的变更:
    #   (使用 "git add <file>..." 更新要提交的内容)
    #   (使用 "git checkout -- <file>..." 丢弃工作区的改动)
    #
    #	修改:      readme.txt
    #
    修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
    

      以上命令提示告诉我们文件被修改过但是没有被提交

      使用git diff 查看修改内容

      

    diff --git a/readme.txt b/readme.txt
    index 4538fec..72c720c 100644
    --- a/readme.txt
    +++ b/readme.txt
    @@ -1,2 +1,2 @@
    -This is my learn git
    +This is my learn git distributed
     Git is goog
    

      提交

    git add readme.txt
    git commit -m "add distrabuted"

      

    6,版本回退  

      git log查看每次修改信息

      

      git log --pretty=oneline 查看版本号

      

      版本回退

      git reset --hard HEAD^

      在查看版本状态

      

      怎么回到删除的那个版本呢

      git reset --hard 6340f7

      PS:要知道版本号,不需要写全,Git会自动去找,也不能太短了,一般6位够了。Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把指向改变。

      如果回退了某个版本但是,又想恢复到最新版本,但是忘记记录版本号怎么办,使用git reflog命令记录每一次命令。

    小结

    • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

    • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

    • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

    7,工作区和暂存区

      工作目录learngit就是一个工作区

      使用git add把文件添加进去,实际上是把文件修改放置到暂存区

      使用git commit,实际上是把暂存区的所有内容提交到当前分支,默认当前分支为master

    8,管理修改

      Git跟着并管理的是修改,而非文件

      所有修改必须先git add 提交到暂存区才能git commit 及git commit只能是暂存区的文件

       如果修改文件但是没有首先git add直接git commit 会出现以下提示

      

    9,撤销修改

      一,修改readme.txt内容如果发现改错了,还没有添加到缓存区,使用git checkout --file放弃修改,相当于撤销

      修改readme.txt文件添加内容

      发现修改错了使用命令放弃修改

    git checkout readme.txt
    

      查看刚刚添加的test没有了

      二,如果已经提交到缓存区使用git reset HEAD file退出缓存区,再执行第一步操作

      三,已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退,不过前提是没有推送到远程库

  • 相关阅读:
    面向安全需求的VANET信道拥塞联合控制框架
    多普勒频移
    5G-Enabled Cooperative Intelligent Vehicular (5GenCIV) Framework: When Benz Meets Marconi
    Vehicle-to-Vehicle Channel Modeling and Measurements: Recent Advances and Future Challenges
    python之对象
    python之数字类型
    python之序列
    数据库进阶
    python之coding style
    python之web开发(待续)
  • 原文地址:https://www.cnblogs.com/minseo/p/6942711.html
Copyright © 2011-2022 走看看