• 版本控制工具(上)——Git的基本使用


    一、Git简介

      git是什么?

      Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。[2]  Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

      // 摘自百度百科

      更多历史诞生故事,可以参见廖雪峰老师的教程:Git诞生

       git和svn有何区别

        从概念上可以看到,git是分布式版本控制,而svn是集中式的。

        更多关于两者的不同,请参见伯乐在线http://blog.jobbole.com/31444/

    二、Git安装

      WIN安装

        在 Windows 平台上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,安装包百度云盘下载:点击下载

        图文安装教程,请参考http://blog.csdn.net/chengyuqiang/article/details/54178683

         安装完成后,进行如下简单配置让git可以确认你的身份即可开始教程了(其它配置后续引入)

        

       git图形化git-gui参考https://www.runoob.com/w3cnote/git-gui-window.html

      其它平台

        其它平台(mac,linux)请参见:http://www.runoob.com/git/git-install-setup.html

    三、Git入门使用

      1.创建版本库—— git init

        在当前目录创建:

    git init

        在指定目录创建:

    git init newrepo

      初始化后,会在对应的目录下会出现一个名为 .git 的目录(隐藏目录),所有 Git 需要的数据和资源都存放在这个目录中。

      示例(目录有误,应该使用linux的目录系统):

      

      2.添加文件到版本库—— git add,git commit

        在刚刚的git仓库下(这里是git_repository)创建一个示例文件:readme.txt(内容自定义)

        

          把文件加入版本库总共两步:  

    $ git add file1.txt
    $ git commit -m "your message"

       -m参数后表示的即为提交的注释(请务必添加!

       看示例:

        

      其中第一次报错很明显提示当前不在仓库里面(因为不是在当前目录创建的仓库),切换到仓库后即可正常使用了!

    四、时光机穿梭

      1.查看状态——随时查看仓库状态,掌握版本库状况

      将之前的readme.txt修改为如下内容(请注意ctrl+S进行保存):

      

      使用git status查看当前状态

    git status

      示例:

      

       可以看到当前,readme.txt已经被修改,但是未提交!

      当然,以上只是知道被修改了,但不知道修改的细节,想知道修改的细节,可以通过git diff来查看

    git diff file

      

      提交修改同样是上文的两步——add commit:

      

      提交后再次查看可以看到状态是clean

      2.版本回滚

      查看历史版本记录

      和SVN一样,可以进行版本回滚。当然,回滚之前我们需要看一下有哪些版本,使用git log查看:

    git log

     需要注意的是,git的版本号是一个非常大的数字(由于它是分布式的),所以它显示的是十六进制的版本号,以保证分布式环境不会冲突

       示例:

      

      当然,有时候版本过多,可以加上一些参数进行格式调整,包括 git log -3(进行条数限制),git log --pretty=oneline

    git log -3
    git log  --pretty=oneline

      示例:

      

       版本回滚

      版本回滚使用的是git reset命令

    git reset <option>

      比较常用的有:回到最新的一次提交(上一个版本)

    git reset --hard HEAD^

      示例:

      

      回到指定版本:

    git reset --hard 版本号

      当然了,版本号是非常长的一大串数字,我们可以只输入前面几位(只要保证不会冲突即可),git会自动寻找的:

      示例:

      

       当然回到历史版本后查看日志是无法看到当前版本之后的信息的,例如有3个版本,假定为1 2 3,你在3版本回滚到了2版本,此时使用git log查看时,不能看到3这个版本了,也就是说除非我们记住了版本号或者正好时间来得及,还没关闭窗口,上翻查看到3的信息,否则这时似乎就无法恢复了。

      但是,git提供了后悔药,你可以使用git reflog来查看每一次的命令:

    git reflog

      示例:

      

      这样,又可以愉快的玩耍了!

       3.工作区和暂存区的概念

      之前我们所说的两步操作:git add git commint到底经历了什么呢?

      add将工作区的内容加到暂存区,commit将暂存区的内容提交到当前分支。

      【注意】Git管理的是修改,当把文件加到暂存区后再次修改是不会被管理的,也就是说git add之后的修改不会被提交,如果想提交,可以再执行一次git add,然后再统一提交即可!

      更多关于这两个区的概念不在此处展开,可以参见:工作区和暂存区

       4.撤销更改

      假设将readme.txt进行了更改

      

      在未提交之前想要撤销,可以使用:

    git checkout -- readme.txt

      查看示例(注意命令的正确书写,查看错误的原因):

      

      

      更多更加完整的通俗的撤销更改的操作,请参见:撤销更改

      5.删除文件

      删除文件就不再赘述了,直接看命令:

    git rm test.txt

       Git附录

      常用命令速查表:

      英文版下载查看(可以打印)

    链接:http://pan.baidu.com/s/1hsMnb4S 密码:akvw

      易百教程:http://www.yiibai.com/git/git_checkout.html

      官网:https://book.git-scm.com/docs 

      官网中文版:https://git-scm.com/book/zh/v2

  • 相关阅读:
    leetcode32 Longest Valid Parentheses 最长有效括号序列
    js的Prototype属性
    一道区间dp和一道字符串
    Cookie和Session
    JS选择器querySelector和~All,三个原生选择器
    module.exports和exports
    Windows7环境下MongoDB安装和配置
    转载:Ajax基础详解&&http填坑2
    Node后台刷评论
    Node 简单爬虫
  • 原文地址:https://www.cnblogs.com/jiangbei/p/7704971.html
Copyright © 2020-2023  润新知