【Git之窗】(三)几个最常用的命令解析

2024-08-26 21:18

本文主要是介绍【Git之窗】(三)几个最常用的命令解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    依稀记得上家公司入职的时候,电脑上安装了两个关于Git的软件,一个是"Git Bash",另一个是“Git Extention”,奈何用了三个月之后才顿悟,我一直在用客户端,然而Git的精髓确是命令行啊,就在刚才我画完了一张“我所理解的Git”的思维导图,发现绝大多数二级分支下都是Git的命令行,如图:

         这里暂且不对上图进行细致分析,只是为了说明命令行在git的使用过程中,才是王道!

    直到工作3个月后,我被调到了炫酷的“VRLe S”小组之后,才开始正式接触Git命令行,于是乎,我静静地卸载了Git Extention,开启了一条命令行的不归路。。。。。


    这里我按照每天工作的时间顺序,对于日常工作中最为常用的几条命令行总结:

    一、AM 9:00 上班

   (1)git pull origin master

    作为一名合格的程序员,每天晚上下班前提交自己“当天没问题”的代码,就应该像是“洗脸”、“刷牙”这样日常必备的事情一样,既然这样,同一个项目组内难免别人提交更新后的代码是对自己代码有影响的,于是乎,上班后干活前执行“git pull”命令也就是必须要做的事情了,当然,如果你开发过程中会有多个分支,比如小编在工作中就有三个分支,分别是“master”、“dev”、“htc”,建议执行git pull命令之前,先切换到git master上,别问我为啥?用久了你就知道了。


   (2)git status

    其实这个命令是该在执行git pull之前就要敲一敲的,我的感觉,git status就像是每次在桌面上点击右键刷新一样频繁。做其他事情之前都该去执行一下这个命令。

              

            如图,你发现了可能在执行git pull之前,有个东西昨天晚上忘记提交了,这就起到了这条命令的作用,同时“On branch dev”、“Changes not staged for commit”都告诉了你当前你应该去做哪些操作。


    二、AM 9:30~11:30 进入工作状态

   (1)git checkou 分支名

    比如我在和别人协同工作时,我的代码是不允许直接写在master上面的,至于为什么?1、master是要当做本地的“生成服务器”来看待的,怎么在“生产服务器”上写测试代码呢?2、提交代码之后,主线会出现“水管现象”(这个名字是我的组长的组长给起的,哈哈,一会儿讨论)。

    于是乎,我需要切换到我的开发分支,执行"git checkou dev",之后,就会显示“Switched to branch 'dev'”.如图:

                  

    表示我已经切换到我该工作的“dev”分支上面了。

    执行这个命令的前提是,你已经有了一个"dev"分支的存在,如果没有,可以执行“git checkout -b dev”,这句话表明我新建了一个分支叫做dev,同时切换过去。


   (2)git branch

    既然刚才我们讲分支切换,那么通过"git branch"命令,就能够对我当前的工作分支进行检查了,你可以了解到,你的本地仓库有多少个分支,以及当前分支是谁。

      

   (3)git rebase

    既然在master上拉去了最新代码,同时也切换到了dev开发分支,这个时候就要把最新代码同步过来啦,如图:

             


       (4)git clone

    上午上班到10点了,突然公司入职了一个“镁铝”程序员,我想公司里的男同胞们就该不淡定了,开始纷纷献殷勤,于是乎,小编开始帮她装git,之后要把组里的代码"download"下来啊,在git的世界里,这条命令叫做“git clone”,而非在做itoo时候SVN的"checkout",为啥?如图:

        看图中那个“框框”,是我在上家公司时候截的一幅图,使用“git clone”之后,你会发现,你负责的这个类,之前被叫做“扬威”、“yangwei”、“yanghe”这三个人修改过,而且是在180天之前创建的,分别在130天之前修改过一次,90天之前修改过一次……,是不是和SVN不一样呢?这样我们对于自己将要接手的新模块也知道了它的“前世与今生”,更加有利于我们去维护它。

    紧接着,就开始编程序了……


   (4)git add / git commit

    到了要吃午饭的时候了,上午的工作也完成了,那就提交到本地仓库吧,执行“git add -A”把修改的代码放到暂存区,执行“git status”,发现代码从红色变成了绿色,那就ok了.这个时候,可以执行“git commit -m '注释信息'”来将代码提交到本地仓库了。然后就和同事们吃饭去吧。



      三、PM 13:00 ~ PM14:00

   (1)git log / git lg2

    人到了这个时间点,状态往往比较懵,写代码的时候可能会将if(a == 1),写成if(a = 1),一旦提交了有问题的代码(有些错误能够瞒过编译器),你就需要git log这个命令了,但是git log有个缺点,页面布局很不清楚,这个时候,组长给我写了一行配置文件:(“~/.gitconfig”这个文件中)

## insert [alias]lg1 = log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --alllg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' -10 --alllg = !"git lg1" 
       之后,git lg2就看到了这样的界面:

          

         看到了最近的一次提交记录是67seconds之前的提交,是我再htc分支上做的,因为比较懵逼提交了错代码,我要回退到之前的代码,就引入了下面的这个命令。


    (2)git reset

    参考git lg2界面中每一次提交的哈希码(Git以HashCode作为唯一标识),我将我的代码回退到旧的版本:“git reset 8891175”,如图:

             

    可见,我的“VRLeS/server”的代码已经回退到我之前的版本了,个人建议,这个操作,谨慎!!!


   (3)git diff

    2点这个时间点确实不适合敲代码啊,适合睡觉,因为你总会忘记自己究竟改了哪些代码,所以,有了这个命令就可以比较自己未add,未commit的代码,与已经commit的代码之间的差别了。(最近eclipse上没有用git,先不上图了)


    四、PM 14:00 ~ 18:00

   (1)git rebase / git merge

    这个时候,一天的工作基本差不多完成了,对于临时加入的分支中的代码,如果测试没有问题,就可以合并到master分支当中,如图:

                 

      

   (2)git rm

    一旦“特征分支”(暂时的分支)中的代码被合并到了master中,无用的分支也就可以删除掉了,其实我们可以先手动删除,再执行“git rm”命令,就可以成功删除“特征分支”了。

    之后执行git commit,把代码提交到本地仓库中。


   (3)git push

    这个步骤也是下班前的必备操作,执行push操作,把我们今天的成果推送到服务器上去吧!

             

          好了,下班吧,回去做饭了!

    That's all.

这篇关于【Git之窗】(三)几个最常用的命令解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1109702

相关文章

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir