git学习第一课

时间:2021-11-06 20:09:38

 学习linux的大牛肯定对git比较熟悉,但是对于我这种菜鸟而言,对git的话只是单纯知道他是一个和SVN一样好用的版本管理工具,之前也有用过git,不过都是直接安装插件使用,用起来很自动化,感觉也挺好,近来为了进一步学习,还是了解一下它的命令行操作为好。接下来的博客也只是在学习git命令的过程中做一些学习记录,not big things。

   还是先科普一下git吧。Git是当前最为流行的分布式版本控制系统之一,最初为管理linux而诞生,但是慢慢被开发者所接纳,用于管理开发过程中的资源,而且当GitHub网站上线后,更是为开源项目免费提供Git存储。那么优势是什么?说到这一点,当然离不开对比。就拿当前各大企业都比较流行的SVN进行对比,SVN是集中式地管理,也就是必须依赖于一个*服务器,则如果你要获取版本库或者更新,都必须能够连接到*服务器才可以。但是Git则是分布式,也就是每一个客户机都可以作为一个版本库来进行管理,也就是不必连接上*服务器也一样工作,当然这也可以利用一台机器作为服务器来作为共同维护的一个版本。其他方面的比较还得一步步深入学习才能了解,这里也是一个简单概念上的对比,凡事还是要经过实践啊!

首先安装一个git,我选择的版本是windows的Git,可以http://msysgit.github.io/上面下载安装之后可以打开Git Bash来进行操作了。
       因为Git可以以本地为仓库,所以必须要设置一下本地的名称和标识,以便对外访问的时候可以进行身份认证。使用git config命令开进行操作,global说明了这个标识为本地机器的所有git仓库都会用到的配置。主要操作如下:
      git config --global user.email "your@example.com"
      git config --global user.name "name"

1.创建一个文件
$ mkdir  learngit
$ cd learngit
如果想知道路径可以运行 $ pwd来查看

2.把它初始化为git仓库
$ git init
这个时候运行ls -a命令可以看到会有一个.git的隐藏目录,隐藏的肯定是不建议我们去修改的,这个目录是Git用来跟踪管理版本库的,因此我们不要去改动而造成混乱。

3.往仓库添加文件
当然我们的文件要放到learngit目录下,否则仓库都不知道管理什么了。创建完之后运行两个步骤,添加add和提交commit,这里我添加了一个testGit的文本,并写入一些字符。
$ git add testGit    
这告诉Git我们要存进仓库的文件,好比提交一个清单
$ git commit -m "comment"  
这就是根据清单入货了,一般都要做个记录,也就是-m后输入的提交说明,这个一般都是有必要的,不然都不知道自己修改或者添加了什么,最后只能坑自己了。

修改刚才提交的testGit文件,再输入$ git status,Git会告诉我们当前仓库的状况。
git学习第一课
文件改变了么但是没有被提交。

只知道文件改变了,但是要得知进一步的详细信息,Git还是很方便地告诉我们哪里改变了
$ git diff
git学习第一课


接下来假如你确定修改无误,你可以选择提交到仓库了。还是和我们之前说的两步走,add + commit,完成之后,可以看到
git学习第一课
git status是一个很有用的命令,可以随时查看仓库的状态,这个时候的状态是版本是最新的了。


一次两次的add + commit或许你还记得你修改了什么,但是当日积月累,你还记得住吗?这个时候我们就要查看日志来看看我们到底做过什么工作,而每一个日志相当于我们的一个版本。
$ git log
git学习第一课
日志的排列又最近往前退排序,上面的记录看到最近的一次为添加一行字符,而往前一次是添加一个新文件,所以说添加一个版本说明多么重要,起码一目了然。而一大串的字符就是我们的版本号了。

当前的版本号为HEAD,而上一个版本号为HEAD^,如此类推,可以HEAD^^……,这样太不方便了,可以HEAD~numberHEAD~1 == HEAD^。我们若要返回到前一个版本,就可以$ git reset --hard HEAD~1,或者要回到某一个版本,则$ git reset --hard "版本号",这个版本号不用全部输入,输入前面的几个就可以了,当然也不要太短。操作一下:
先查看一下文件内容
git学习第一课
恢复上一个版本
git学习第一课
然后查看一下文件的内容
git学习第一课

万一我们操作失误,又想回到未返回之前的版本,怎么办?$git log这个时候已经帮不了忙了,只能显示当前版本和之前的。没问题,我们可以通过查找历史操作来查看最早之前的一个版本号。使用命令$ git reflog
git学习第一课

看到add a line的版本号了。用前面提到的$ git reset --hard "版本号"  恢复即可。
git学习第一课

查看恢复后的文件
git学习第一课

又回来了,搞掂~~~~操作起来倒是挺容易的。

参考:Git教程 By 廖雪峰