文章目录
1)前言
git的重要性应该是不言而喻的。
2)Git & GitHub 的认识
先保留一个认知:Git是为协作开发而生。
Git 是(开源)工具,GitHub是一个运行Git的平台。
在文档猴子都能懂的Git入门入门篇中介绍了在没有git进行版本控制之前,每次新的开发都需要提前进行备份。
① Git是一个免费和开源的
分布式版本控制系统
,因为它记录一个文件或一组文件随时间的变化,以便以后可以调用特定版本,所以能够精准的控制更改过的每一个版本
,它是当前最主流的分布式版本控制系统。
② 分布式版本控制系统可以帮助使用者保存所有的修改记录
,使用版本号
进行区分,也是利用版本号实现精准控
修改过的每一个版本。
③ 借助布式版本控制系统,我们可以随时浏览历史版本,将改错的文件还原到指定的版本,可以对比不同版本的文件差别,有恢复和保护的作用。
GitHub是主流的
代码托管平台
,就十分粗糙的理解为一个存放和管理代码的网盘都是可以的。
它支持咱们将自己的项目代码上传到这个代码托管平台,也可以从这个平台上下载代码到自己本地使用。
3)Git基础
3.1)Git 的安装
Tips:
本篇文章,以及后续文章中的Git操作主要是使用自身下载之后的Git Bash窗口通过代码来进行操作。
倘若觉得这种操作比较吃力,可以使用的TortoiseGit的图形面界面来实现操作。
第16讲 Git TortoiseGit 使用
跟着《猴子都能懂的Git入门》来进行操作,熟悉一些Git的流程。
最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑。不过,慢慢地有人把它移植到了Windows上。现在Git可以在Linux、Unix、Mac和Windows这几大平台上正常运行了。
要使用Git,第一步当然是安装Git了。根据你当前使用的平台来阅读下面的文字:
① 在Windows上安装Git
在Windows上使用Git,可以从Git官网直接下载安装程序,然后按默认选项安装即可。
安装完成后,在开始菜单里找到Git->Git Bash
,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
因为Git是分布式版本控制系统,所以,对于每个使用它的机器都必须自报家门:你的名字和Email地址。
注意
git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
② 在Mac 上安装Git
如果你正在使用Mac做开发,有两种安装Git的方法。
法一:安装homebrew
,然后通过homebrew
安装Git
,具体方法请参考homebrew的文档
法二(推荐):直接从AppStore
安装Xcode
,Xcode
集成了Git。
不过默认没有安装,你需要运行Xcode
,选择菜单Xcode->Preferences
,在弹出窗口中找到Downloads
,选择Command Line Tools
,点Install
就可以完成安装了。
③ 在Linux上安装Git
首先,你可以试着输入git,看看系统有没有安装Git:
$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git
Linux会十分友好的反馈出有没有安装Git,以及会告诉你如何安装Git。
如果你碰巧用Debian或Ubuntu Linux,通过一条sudo apt-get install git
就可以直接完成Git的安装,非常简单。
如果是其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入:./config
,make
,sudo make install
这几个命令安装就好了。
也可以参考官方文档中写的安装方式Git安装——(需要翻译一下)
3.2)Git 的工作区、暂存区、版本库理解
最重要也最需要理解的内容:
- 工作区:进行改动(增删文件和内容)
- 暂存区:在输入命令:
git add 改动文件的名字
之后,本次改动将会放到暂存区 - 本地仓库(可以简称为本地):在输入命名:
git commit -m"此处修改的描述"
之后,会将上方暂存区中放置的改动结果放到本地仓库
,每一个commit,可以称为一个版本。 - 远程仓库(可以简称为远程):在输入命令:
git push 远程仓库
之后,放到本地仓库中的改动结果,会被放到远程仓库(github、gitee等等) - 版本号 commit-id:在输入命令:
git log
之后,最上面那行commit xxxxxx,这个xxxxxx就是版本号。
工作区可以理解为是自己计算机本地的创建的一个文件夹
暂存区暂存add后的本地文件,版本库存放新一个版本状态的提交文件
2.3)Git 的九个基本操作
直接跟着我的操作走一遍,差不多就对Git的基础操作蛮清楚了。
2.3.1)前五个基本操作
拓展:
此处也可以积累一个关于Linux指令创建文件夹的操作
mkdir GitDemo
进入该文件夹
cd gitDemo
① 初始化操作 —— git init
git init
这个操作将在此文件夹下创建一个名为的新子目录.git,其中包含所有必要的存储库文件—— 一个 Git存储库骨架
。这是Git 能够对该该文件夹进行操作的基础。
我现在手动创建一个文件demo.txt,并在其中编撰一定内容,用于后续的演示。
② 查看状态 git status
git status
学会查看状态其实蛮重要的,因为Git 通过窗口显示的出来的提示可以很好地指导我们进行后续的操作的
③ 暂存 git add
git add
咱们重新看看状态,看看有没有什么提示喃
那么就老老实实进行提交啦
④ 提交 git commit
提交的指令是这种的
git commit -m"本次提交想要备注的内容,可以使用英语,也可以使用中文"
假如没有写 -m"需要备注的内容"
,此时会进入大多数人不太熟悉的Vim编辑窗口了。
可以参考这位博主的博客了
Git Vim编辑器输入内容、保存和退出操作
编辑模式:
命令模式:
键入:wq表示保存并离开,然后直接回车就可以保存并退出。
⑤ 查看日志 git log
git log
倘若只是想用版本号(那串很长的哈希值)来锁定到指定的版本,可以使用
git log --pretty=oneline
拓展:
2.3.2)用上述五个基本操作实现版本控制
① 模拟开发,在原本的版本上进行再次开发
② 因为内容变更,需重新进行 add 以及 commit
完成commit
拓展:当查看的日志开太多了,会出现这种无法输入的界面。可以键入q解决
③ 发现新版本不好用,打算回退到未开发的第一代版本
依旧是模拟开发,此时发现新更新的这个版本不好用,想要回退到第一代的版本,此时想要回退到之前的版本,或者回退到某个指定的版本。
方法一:
git reset --hard 版本号
版本号可以通过git log
和 git reflog
查看,然后获得到想要的版本版本号
实现版本控制
这是在Git Bash 获得的反馈
实际回到demo.txt文件,可以发现,文件确实是被修改过了,回到了自己想要你的版本
方法二:
git reset --hard HEAD^ 线性回退几次,就打几个^
方法二需要理解HEAD指针
,结合下方的图理解。
HEAD头指针指向的当前分支最新的版本号。
其具体的实现可以通过这张图俩阐述
我现在去手动更新两边版本的内容。然后用于演示
拓展:倘若觉得频繁使用 git add
和 git commit -m
有点麻烦,可以考虑使用合并的方式。
将更新版本都提交到Git的版本库中进行管理了
【演示git reset --hard HEAD^
】
【演示git reset --hard HEAD^^
】
这里有个小细节,咱们对比两种版本控制的代码再查看日志的结果:
使用git reset --hard HEAD
会修改提交信息
使用git reset --hard 具体版本号
不会修改提交信息
到这里为止的操作,就是切实的结合Git对项目的各个版本进行时时的控制。
剩下的克隆操作、拉取操作、拉取合并操作、推送操作需要结合GitHub或者Gitee来演示会更加生动,那咱们下一篇先着手初步认识这种代码托管平台吧。
4)总结
初始化,查看状态,暂存,提交和查看日志
等五个操作,是基础中的基础啦,务必练熟。