全面理解Git

2018-12-02  本文已影响4人  MNCode

全面理解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

上一篇下一篇

猜你喜欢

热点阅读