美文网首页
全面理解Git

全面理解Git

作者: MNCode | 来源:发表于2018-12-02 14:21 被阅读4次

    全面理解Git

    前言

    人生贵知心,定交无暮早。

    原文博客地址:Git命令总结

    知乎专栏&&简书专题:前端进击者(知乎)前端进击者(简书)

    正文

    1.Git简介

        Git的诞生确实是一个有趣的故事,我们知道,当年Linus创建了开源的Linux,从此,Linux系统不断发展,现在已经成为最大的服务器系统软件了。(请不要傻傻分不清Linus和Linux)

        但是随着Linux的不断壮大,就需要各种版本控制了,起初Linus带着他的小弟们使用的是BitKeeper(商业版本控制系统),之后呢由于某种原因BitKeeper的公司不让他们使用了,于是Linus自己花了两周时间写出了Git并且开源了(BitKeeper已哭晕在厕所),阿弥陀佛,幸亏BitKeeper不让Linus他们用了,要不然我们现在也不会有这么好用的Git了,博主更不会在这写这篇博文了。

        之后的岁月里,渐渐有了github,coding等一些可以使用git存储的网站,Git的江湖地位变得无可替代了,如果你是个开发者却还不会使用Git那就太out了。

    这里先引用一张图解释Git

    工作原理:

    Workspace:工作区,执行git add *命令就把改动提交到了暂存区,执行git pull命令将远程仓库的数据拉到当前分支并合并,执行git checkout [branch-name]切换分支

    Index:暂存区,执行git commit -m '说明' 命令就把改动提交到了仓库区(当前分支)

    Repository:仓库区(或本地仓库),执行git push origin master提交到远程仓库,执行git clone 地址将克隆远程仓库到本地

    Remote:远程仓库,就是类似github,coding等网站所提供的仓库

    :实际操作命令和上述命令会有所不同,这里这是解释清楚命令和仓库的关系。

    1.1 Git 术语

    术语定义

    仓库(Repository)一个仓库包括了所有的版本信息、所有的分支和标记信息。在Git中仓库的每份拷贝都是完整的。仓库让你可以从中取得你的工作副本。

    分支(Branches)一个分支意味着一个独立的、拥有自己历史信息的代码线(code line)。你可以从已有的代码中生成一个新的分支,这个分支与剩余的分支完全独立。默认的分支往往是叫master。用户可以选择一个分支,选择一个分支执行命令git checkout branch.

    标记(Tags)一个标记指的是某个分支某个特定时间点的状态。通过标记,可以很方便的切换到标记时的状态,例如2009年1月25号在testing分支上的代码状态

    提交(Commit)提交代码后,仓库会创建一个新的版本。这个版本可以在后续被重新获得。每次提交都包括作者和提交者,作者和提交者可以是不同的人

    修订(Revision)用来表示代码的一个版本状态。Git通过用SHA1 hash算法表示的id来标识不同的版本。每一个 SHA1 id都是160位长,16进制标识的字符串.。最新的版本可以通过HEAD来获取。之前的版本可以通过"HEAD~1"来获取,以此类推。

    1.2 忽略特定的文件

    可以配置Git忽略特定的文件或者是文件夹。这些配置都放在.gitignore文件中。这个文件可以存在于不同的文件夹中,可以包含不同的文件匹配模式。

    比如.gitignore内容可以如下:

    同时Git也提供了全局的配置,core.excludesfile。

    忽略之后的文件或是文件夹Git就不去提交里面的内容了。

    1.3 使用.gitkeep来追踪空的文件夹

    Git会忽略空的文件夹。如果你想版本控制包括空文件夹,根据惯例会在空文件夹下放置.gitkeep文件。其实对文件名没有特定的要求。一旦一个空文件夹下有文件后,这个文件夹就会在版本控制范围内。

    1.4 配置

    Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。

    个人觉得git是需要认真学的,虽然是个工具但不学习很容易把自己弄糊涂,希望这篇博客可以在某些时候帮到您,让您大概理解git的工作原理并把基本命令串起来。那么下面就说一下Git重要的基本命令吧。

    2.Git安装

    Git-for-window

    下载安装这个不用多说吧....

    3.创建仓库

    git init后会出现.git文件夹,里面有配置文件,如果没有git bash里面输入ls -lah就可以看到了

    关于如何关联Git和远程仓库,比如Coding,github等,可以看这两篇文章

    Git链接到自己的GithubCoding帮助中心

    4.提交文件

    4.1首次推送

    首次推送成功后可以看下下面的命令:

    如果我们只是维护自己的小项目的话,上面的命令已经够用了,自己一个人在master分支想咋折腾就咋折腾

    5.分支

    但如果是多人协作的话,git的魅力就开始提现出来了,每个人有自己的一个分支,各自在自己的分支上工作互不干扰。具体的看这:Git教程-创建合并分支

    6.标签

    标签的作用主要是用来做版本回退的,关于版本回退,这也是Git的亮点之一,起到了后悔药的功能·

    7.后悔药

    想一下在你写完N个文件代码后,commit到了本地仓库,突然发现整个应用崩溃了!咋整?Git给了我们吃后悔药

    的机会:

    这个时候标签的作用就体现出来了,因为commit号太冗长了,记起来太麻烦有了标签我们相当于自定义了commit号

    8. 文件信息

    8.其它命令

    命令说明

    git blame filepathgit blame清楚的记录某个文件的更改历史和更改人,简直是查看背锅人的利器,filepath是需要查看的文件路径

    git status显示有变更的文件

    git reflog显示当前分支的最近几次提交

    后记

    要想彻底熟练使用git那需要记住的命令多了去了,起码几百个吧,不过在日常使用中,本文涉及的命令应该是足够用了,有遗漏的常用命令欢迎提出补充。另外,诚心希望您能把参考文章好好读一下,阮老师和廖老师总结的十分到位。本文好多命令也都是使用的两位老师总结的。

    参考文章:

    Git教程

    Git命令清单

    https://www.cnblogs.com/jztan/p/6068780.html

    相关文章

      网友评论

          本文标题:全面理解Git

          本文链接:https://www.haomeiwen.com/subject/tzoafftx.html