02、oh my zsh安装和git 常用命令简介

    大家好,上一节我们简单介绍了git,对比了git,gitlab,github之间的关系,最后安装了git,这节我们学习一些git的基本的命令。另外希望初学者可以跟着博客逐个练习这些命令,这样可以加深记忆,单纯的看过可能很容易会忘掉。
本节内容预告:

  1. 工具oh my zsh 简介以及安装
  2. git常用 作用详解并实践
  3. 简单总结

1. oh my zsh简介以及安装

习惯linux命令或者苹果系统的人都比较习惯敲命令来实现一些常规操作。Shell的类型有很多种,linux下默认的是bash,虽然bash的功能已经很强大,但bash的提示功能不够强大,界面也不够炫,并非理想工具。
而zsh的功能极其强大,只是配置过于复杂,起初只有极客才在用。后来,有个穷极无聊的程序员可能是实在看不下去广大猿友一直只能使用单调的bash, 于是他创建了一个名为oh-my-zsh的开源项目,oh ny zsh在github上面上有 10w的star。关于zsh的一些详细介绍,可以网上找找资料,后面也会在使用过程中逐渐深入了解,下面直接安装。正如官网提供的命令,你可以直接在你的linux系统敲命令sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"即可完成安装,这里要注意可能因为你的系统没有安装zsh导致安装失败,这样你需要先 安装zsh yum -y install zsh,因为这种方式会从git上获取资源,所以也要确保你的系统是安装git的,因为上一节我们已经安装过git了,所以这个就不重复赘述了。

2.git命令详解以及实践

1. git init

     git init 是建立本地版本仓库的初始化命令,通过git init,git会在你当前文件夹生成一个.git 文件,这个文件里面保存的是一些代码版本管理需要的元数据文件等内容,后续我们会深入展开里面的一些具体文件细节。
    我们先创建一个文件夹用于初始化git仓库,如下,先创建一个csdn的文件夹,后续我们相关git学习命令都会放在这个文件夹,然后在csdn文件夹里面创建一个git02目录,进入git02,执行命令git init
效果如下,
1、git会在当前目录生成一个.git文件,
2、并且留意到建立本地仓库后你的文件名前面会显示你的git当前分支为master,这是oh my sh带给我们的便利,不然每次涉及分支操作你需要先自己手动敲命令查看自己当前分支。分支的概念后面会提到,现在只需要知道这件事情就好。
在这里插入图片描述

2. git config

初始化仓库后,你需要简单的对你的仓库进行配置。
在这里插入图片描述
    可以看到,git config 可以对配置的变量进行好多操作,刚开始我们简单的配置一下邮箱和用户名,这通常也是Git新初始化仓库后需要我们做的事情。
    使用git config --list或者 等价命令git config -l 可以看到当前git有的一些配置。因为我这个Git仓库是自己已经做过一些配置的,所以可能和实际初始化仓库的内容不一样,不过这不影响后续操作。
在这里插入图片描述
    通过git config --global user.namegit config --global user.email可以配置当前git的用户名和邮箱。这个只是作为一个标识保存,后面你的提交记录上面会带着你的邮箱和用户名。
    需要留意第二个参数 --global,git config给我们提供了三种配置范围,细心的话看一下前面的git配置可选参数有简单说明,global是用户级别的配置参数,还有一个system是当前系统的配置参数,local是当前git仓库的配置参数
    如果你配置的是system级别的,那么这个电脑的所有用户进来都会看见你的配置信息项,如果你配置的是global级别的,那么只有当前用户进来能看的见,但是这个用户操作的所有git仓库都会看见同样的配置参数,如果是local级别的,这个范围最低,只是针对当前仓库有效。通常比较常用的是global
在这里插入图片描述
    配置好后,通过命令git config -l 可以看到配置是否生效。那么问题来了,如果我们Git 配置设置错了,怎么办,比如你设置错名字了,或者邮箱。。。有两种方式,第一种是删除原来的配置,命令为git config --global --unset user.name
在这里插入图片描述
第二种是直接覆盖,如下:
在这里插入图片描述
    至此,我们会用git config配置当前git的用户名和邮箱,并且对一些误加的变量进行删除,以及查看当前git配置的一些参数。

3.git status

这个命令很重要,后面我们在操作的时候会经常用到这个参数。
在这里插入图片描述
    git status 命令是我们用来看当前git文件所处的状态的一个命令,可以看到
1、第一次我们敲git status的时候,git提示我们初始化提交,没有可以提交的东西,可以创建后者复制一个文件到这里,用git add 命令来跟踪这个文件状态。
2、通过linux的echo 命令,追加hello world 到一个新的文件test.txt
3、git status,git 提示有一个没有被追踪的文件,是因为这个文件现在是在工作区,git只会追踪添加到暂存区的文件,同时,git 提示我们可以通过git add 命令将工作区修改的文件添加到暂存区,另外留意到当前目录的后面有个 符号x,这是oh my sh 提供给我们的便利,提示你当前文件有没有保存到版本库。
4、按照git的提示,我们使用命令git add test.txt,这样会将文件添加到暂存区,再次使用命令git status,可以看到提示变了,git提示现在有一个等待提交的改变,可以使用git commit -m '提交信息'这样会将暂存区的改变保存到git的本地版本库
5、这里也可以如git的提示使用git rm --cached test.txt,将文件从暂存区移除,这样你的文件又会回到工作区也就是回到步骤三。
在这里插入图片描述
6、使用commit命令后,再次git status,会发现git工作区是干净的,而且文件目录后面的X号不见了。
7、使用命令git log,可以看到刚才的提交记录
在这里插入图片描述
8、使用 q键可以退出查看日志模式
至此,你本次提交已经成功保存到git版本库,并且可以看到提交日志,可以看到上面用到了其他几个add,commit,log命令,相信已经对这几个命令有了一个初印象。下面我们对这几个命令具体详细阐述一下。

4.git add

    git add的作用就是将你工作目录的文件添加到暂存区,这个后面git就会追踪到你的修改变化。
    常用的参数有两种:第一种是 git add 文件名或者文件夹 ,添加指定目录的文件, 第二种是git add .这样会将当前目录所有未追踪的文件和已修改的文件都添加到暂存区,具体需求具体对待(这里实际上gitignore的文件不会添加进去,后面会提到)
    另外git add 命令实际还可以和许多其他参数组合使用,可以通过git add --help,查看具体用法和一些细节,这里简单列几条。
在这里插入图片描述

5、git commit

    git commit 的作用是将存到git暂存区的内容提交到git的版本库。提交到本地版本库的内容会保留你的提交历史,正常来首保存到本地版本库后的内容不会丢失,也可以通过提交id实现一些版本的回退。
    git commit的常用命令是git commit -m '提交信息',这里需要注意,git默认每次commit必须添加提交信息,这样可以保留追踪你的提交历史,不然单纯的提交id不好记忆。时间长了也记不清自己提交内容。
    和git add一样,git commit也可以跟许多其他参数,具体可以通过git commit --help查看,这里列一个常用的:

  1. git commit --amend 这个命令作用时修改上次提交的message,演示如下,我们第一次Git log显示提交信息如下:
    在这里插入图片描述
    使用 git commit --amend -m '修改提交信息',后git log效果如下:
    在这里插入图片描述
    另外,上面提到git commit git会强制你添加提交信息,如果你没有加-m 参数直接git commit,git 会跳到一个系统默认编辑器让你添加提交信息。windows上面可能就是你的记事本或者notepad++。

6、git log

    git log 命令上面已经用过很多次了,这个命令是用来查看你的提交历史。
git log也可以跟许多参数,我们就常用的几个做个示范。

  1. git log -p,显示每次提交内容的差异这里说一下在git中如果你修改的是同一行的话,git默认你是做了一个将原来那行的内容删除,并新增一行保存新的内容的操作。所以可以看到git提示我们在以前也就是a的test.txt里面删除了内容,在新的b的test.txt 里面新增了内容,并且下面列出了我删除的东西,和新增的内容,(实际就是我更改的内容)
    在这里插入图片描述
  2. git log -n 仅显示最近n次的更新,这个比较好理解,刚开始我使用git log,显示内容如下:
    在这里插入图片描述
    我使用git log -1后显示内容变成了这样:
    在这里插入图片描述
  3. git log --stat,显示简要的增改行数统计,如图,显示test.txt变更了两行,一行新增一行删除
    在这里插入图片描述
  4. git log --pretty=oneline,将提交id和提交信息放在一行显示,这个有时候便于查找某次提交的提交id,不会因为很多的提交信息看其起来比较乱
    在这里插入图片描述
  5. git log --pretty=format:"%h-%an,%ar:%s",将一些提交的信息格式化显示出来
    在这里插入图片描述
    6.git log --graph,会将你的提交记录在左边以图形的形式展示出来,这里效果不是很明显是因为我们是在一个分支上面开发,如果多分支提交的时候,会看到这个命令作用
    在这里插入图片描述

3、回顾总结

    本节刚开始安装了一个对于我们学习git和在linux上面执行命令很有用的一个工具oh my sh,后面又从最开始的git init初始化一个git仓库,到创建一个文件,修改一个文件,保存到暂存区add,提交到版本库commit ,这一系列过程实现代码的版本管理,中间穿插使用了两个非常常用的命令git status和git log。最后针对中间用到的一些命令逐个简单说了一下用法。这里要留意,因为篇幅和精力的原因,我们上面提到的实际上很片面,只是列了日常开发中比较常用的命令,具体针对每个命令,如果展开了说,都能说很久,所以如果读者感兴趣,可以自己具体学习每个命令。
    正如上面所提到的,通过-- help,可以看到git提供的帮助文档,用法,可以拼接的参数等等。

    关于git的一些正向流程的命令从文件创建到保存到版本库,本节已经简单说明,但是实际还有好多内容

  1. 比如你保存到暂存区或者版本库的内容提交错了需要回滚怎么办?
  2. 每个项目都依赖本地创建的时候都会有一些自己本地环境相关的内容,这些内容每个人都不一样是不能提交到版本库的,这部分内容怎么处理?
  3. 如果一个项目不同的模块进度不一样,同时有好几个不同上线节点的需求怎么处理?开发到一起的话,会不会没上线的内容影响到其他要上线的内容?

这些问题我们留到下一节来解决。

最后,感谢阅读,如有错误,请不吝指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章