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

2023-05-16

    大家好,上一节我们简单介绍了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. 如果一个项目不同的模块进度不一样,同时有好几个不同上线节点的需求怎么处理?开发到一起的话,会不会没上线的内容影响到其他要上线的内容?

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

02、oh my zsh安装和git 常用命令简介 的相关文章

  • Win10 wifi、蓝牙打不开

    问题 xff1a win10系统intel wifi6 蓝牙装完驱动 xff0c 依然启动不了设备 原因 xff1a 驱动正确安装好后 xff0c wifi和蓝牙依旧不能启动的原因在于服务没有开启 方法 xff1a 右键 此电脑 管理 双击
  • Ubuntu18.04 安装有道词典youdao-dict

    1 有道词典官网下载Ubuntu amd64 版 deb文件 http cidian youdao com multi html 2 下载到Downloads文件夹 3 安装 cd Downloads sudo dpkg i youdao
  • 启动rqt_graph,提示/opt/ros/melodic/share/pr2_motor_diagnostic_tool下的plugin.xml文件有问题

    问题 xff1a 如题 xff0c 打开plugin xml xff0c 发现是空白的 解决方法 xff1a 找到pr2的github xff0c 下载复制到 opt ros melodic share pr2 moto diagnosti
  • Ubuntu下wifi适配器、蓝牙找不到

    方法 xff1a 1 xff09 在windows系统下安装wifi驱动 xff0c 蓝牙驱动等 xff1b 2 xff09 关机 xff0c 不是重启 xff01 然后再次手动开机 3 xff09 在ubuntu中查看wifi 蓝牙的开关
  • Linux与gitee的连接

    当我们在Linux系统下完成代码后 xff0c 希望能跟在windows操作下一样 xff0c 将在编译器上写好的代码传送到远端 xff08 gitee xff09 上 这也不难 只需要按以下步骤即可完成 第一 xff1a 先在gitee上
  • STM32F103C8T6点亮LED灯(流水灯)(IO口的初始复用功能)

    xff08 1 xff09 序言 刚开始学 STM32 xff0c 当然是点亮LED灯了 xff0c 从arm中的 hello word 开始着手 软件安装 xff0c 硬件连接 xff0c 前面文章已经有讲 xff0c 这里不再多说 xf
  • 在不ROOT的条件下通过WIFI调试android程序

    1 通过USB连接设备 xff0c 确保调试运行正常 2 运行 adb tcpip 5555 3 运行adb connect lt devices ip gt 5555 4 断开USB连接 xff0c 查看是否能正常调试 5 如需要再次利用
  • Oracle 11g单实例使用ASM注意事项

    1 etc hosts文件一定要写正确 A 确保127 0 0 1对应的仅仅是localhost等 xff0c 不能对应主机名 B 一定要把本机ip地址以及对应的主机名称加到下面行里 2 配置ASM最后执行第二个root脚本时 xff0c
  • Win32 SDK开发中对话框控件消息处理

    LRESULT CALLBACK WndProc HWND hWnd UINT message WPARAM wParam LPARAM lParam switch message HANDLE MSG hWnd WM CREATE OnC
  • win32 SDK开发中打开 保存文件对话框的使用

    示例程序如下 TCHAR strFileName MAX PATH 61 T 34 34 TCHAR strPath MAX PATH 61 T 34 34 OPENFILENAME ofn 61 sizeof OPENFILENAME N
  • static 修饰的全局变量具有内部链接的一个例子

    很久不能明白这个事情 xff0c 下面自己来举个例子吧 xff1a 文件1 c include lt stdio h gt extern int s int main printf 34 d n 34 s return 0 文件2 c in
  • CentOS6 虚拟机管理工具 virt-manager 在Xmanager键位混乱问题

    平时一直在Linux下面管理虚拟机 xff0c 没有啥问题 xff0c 今天由于工作需要 xff0c 在Xmanager中进行虚拟机管理 xff0c 发现virt manager管理工具中虚拟机控制台登录键盘映射错乱 xff0c 经研究发现
  • 在Jdeveloper 11gR2中传递url参数到由task flow构成的区中

    1 建立环境 新建fusion web application gt PassVar 在默认任务流 adf config xml里面创建view welcome和相应的jsf页面 新建bounded任务流passVar xml 在任务栏中添
  • Oracle ADF控件屏幕居中

    在某些情况下 xff0c 比如登录窗口 xff0c 我们希望能位于屏幕正中央 在ADF中通过下面步骤实现 1 新建fusion web application gt CenterItem 在默认任务流 adf config xml里面创建v
  • 顺序表的创建与使用

    顺序表的创建与使用 这里还定义了一个数据类型的宏 xff0c TYPE 首先需要设计数据结构 xff0c 这里设计了两个成员 xff1a 数组首地址和元素个数 然后是进行各种业务功能的分函数 xff1a 创建顺序表 销毁顺序表 访问顺序表中
  • 顺序栈的创建与使用

    顺序栈的创建与使用 首先是各种函数的头文件声明 这里还另外定义了一个数据类型的宏 xff0c int类型数据暂时用作TYPE替换 xff0c 也可以替换成其他类型数据 然后是设计数据结构体 xff0c 这里定义了三个成员变量 其次是实现各项
  • 利用C++模板封装链表

    利用C 43 43 实现链表模板类 include lt iostream gt include lt stdlib h gt using namespace std template lt typename T gt class Node
  • 利用套接字创建本地socket文件完成本地进程间通信

    利用套接字创建socket文件完成本地两个进程之间的通信 xff0c 这里分为进程A和进程B 进程A 头文件 进程A里面首先是各种头文件 xff1a 1 include lt stdio h gt 2 include lt stdlib h
  • C++在字符串中搜索特定的字符

    C 43 43 在字符串中搜索特定的字符 在字符串中搜索特定字符是指在字符串中寻找是否存在指定的字符或字符集 include lt iostream gt int main int argc const char argv std stri
  • C++中在字符串中提取子字符串

    C 43 43 中在字符串中提取子字符串 从字符串中提取子字符串是指将一个字符串中的一部分截取下来形成一个新的字符串 include lt iostream gt int main int argc const char argv std

随机推荐

  • C++中如何访问字符串中的单个字符

    访问字符串中的单个字符 访问字符串中的单个字符是像字符数组那样使用下标访问字符串中的某个元素 include lt iostream gt int main int argc const char argv std string str1
  • c中有时候一个名字具有块作用域但是有外部链接的一个例子

    文件1 c include lt stdio h gt void f void s具有块作用域 xff0c 但是具有外部链接 extern int s printf 34 d n 34 s int main f return 0 文件2 c
  • Javascript Map 对象使用说明

    Map 是 ES6 中引入的一种新的数据结构 xff0c 对象保存键值对 任何值 对象或者原始值 都可以作为一个键或一个值 以前用的JS对象 Object也是可以把其属性看作键来定位数据 xff0c 但 Map 和 Object 是有区别的
  • 如何将Mac备份到外置硬盘?

    Apple爱好者喜欢该其设备的时尚设计和简单的用户界面 然而 xff0c 设置Mac的备份可能会令人沮丧 xff0c 因为大多数外部硬盘驱动器在使用之前必须进行格式化 然而 xff0c 如果了解如何将Mac备份到外部硬盘驱动器后 xff0c
  • C++中字符串的交换与复制

    字符串的交换是指将两个字符串的内容互相交换 字符串复制是指生成一个新的字符串其内容为原有字符串的内容 include lt iostream gt int main std string str1 61 34 Hello 34 std st
  • Kali2022安装Docker和Docker-compose以及更改国内镜像源

    装之前可以选择更新一下软件库 root kali apt update 安装docker root kali apt install docker io root kali docker version 查看Docker版本 root ka
  • Mac系统配置php环境

    写在前面 叨叨叨 急着配环境的同志们可以绕道 最近学校的实验室里接了一个小项目 考勤刷卡系统 xff0c 利用RFID在硬件层获取学生卡的ID xff0c 通过wifi传输至服务器 xff0c 进行考勤信息存储 xff0c 手机端获取服务器
  • 病毒变种--C语言练习

    病毒变种 病毒DNA可以表示成由一些字母组成的字符串序列 xff0c 且病毒的DNA序列是环状的 例如 xff0c 假设病毒的DNA序列为baa xff0c 则该病毒的DNA序列有三种变种 xff1a baa aab aba 试编写一程序
  • http、https 等 常用默认端口号

    HTTP协议代理服务器常用端口号 xff1a 80 8080 3128 8081 9080 SOCKS代理协议服务器常用端口号 xff1a 1080 FTP xff08 文件传输 xff09 协议代理服务器常用端口号 xff1a 21 Te
  • 网络传输性能netperf测试方法和下载

    简介 Netperf是一种网络性能的测试工具 xff0c 主要针对基于TCP或UDP的传输 Netperf根据应用的不同 xff0c 可以进行不同模式的网络性能测试 xff0c 即批量数据传输 xff08 bulk data transfe
  • 个人服务器(Linux)安装confluence

    个人服务器 Linux 安装confluence 文章目录 个人服务器 Linux 安装confluence 前言 一 服务器配置 二 JDK环境安装 1 下载java8 2 上传安装包 3 解压缩并重命名 4 配置jdk环境变量 5 测试
  • 关于Windows利用Mstsc远程访问Ubutu的VNC方法

    这里发现了一篇网上很好的文章 xff0c 实现也很顺利 xff0c 因此将那篇文章直接引用过来 地址为 xff1a https www cnblogs com xuliangxing p 7642650 html
  • VSCode 常用且好用的插件推荐

    python相关插件 Tabnine AI代码提示器 xff08 支持JavaScript Python Java Typescript amp all other languages xff09 Python vscode 的 pytho
  • Qt中实现图片透明度设置与显示

    在使用QGraphicsScene过程中 xff0c 想要实现背景和前景图层叠加显示 xff0c 需要设置对应层绘图的透明度的设置 采用重写drawBackground QPainter painter const QRectF amp r
  • c语言现代发方法19章学习经历记录

    19 4 5用栈实现抽象数据类型 这里简直太牛了 xff0c 直接定义一个结构体类型的栈 xff0c 里面是一个头节点 xff08 也是一个指针 xff09 后面直接定义一个栈的指针对象 xff0c 那么就可以随意改变栈里面的内容 xff0
  • 计蒜客 信息学题库 T1068 救援

    T1068 救援 救生船从大本营出发 xff0c 营救若干屋顶上的人回到大本营 xff0c 屋顶数目以及每个屋顶的坐标和人数都将由输入决定 xff0c 求出所有人都到达大本营并登陆所用的时间 在直角坐标系的原点是大本营 xff0c 救生船每
  • 计蒜客 信息学题库 T1079 开关灯

    T1079 开关灯 假设有 N 盏灯 xff08 N 为不大于 5000 的正整数 xff09 xff0c 从 1 到 N 按顺序依次编号 xff0c 初始时全部处于开启状态 xff1b 有 M 个人 xff08 M 为不大于 N 的正整数
  • 利用python实现ftp的文件读写

    ftp登陆连接 from ftplib import FTP 加载ftp模块 ftp 61 FTP 设置变量 ftp set debuglevel 2 打开调试级别2 xff0c 显示详细信息 ftp connect 34 IP 34 34
  • Serdes原理

    Serdes原理 1 为什么需要SerDes 电子系统中 xff0c 传送数据的方式一般有两种方式 xff0c 串口或者并口 xff0c 具体定义不区分 先来说一下同步与异步通信 二者的区别在于是否有时钟线来对齐数据 xff0c 采样数据
  • 02、oh my zsh安装和git 常用命令简介

    大家好 xff0c 上一节我们简单介绍了git xff0c 对比了git xff0c gitlab github之间的关系 xff0c 最后安装了git xff0c 这节我们学习一些git的基本的命令 另外希望初学者可以跟着博客逐个练习这些