Git常用命令总结

标签: 个人笔记  git

Git基础

想要能快速入门Git,让其帮助自己进行代码的版本管理,而不是给自己造成麻烦,必须先得理解GIt的一些基本概念。

暂存区

Git中文件在本地的移动方式用三个区域表示,分别表示工作空间(worktree)、暂存区(staged)、已提交仓库,如果不涉及版本移动、分支等操作我们文件就是在这个三个区域中进行移动。

分支概念

Git中延时间线的移动方式如下图,这里会涉及到版本的移动,分支的合并等操作。

HEAD

通常HEAD指向当前分支,然后当前分支指向一个commit,但是HEAD也可以处于一个游离状态,即HEAD不指向任何分支而是直接指向一个commit。

 游离的HEAD

git checkout 0d649fbc041134f0146e377c63f03ff9756effc8
Note: switching to '0d649fbc041134f0146e377c63f03ff9756effc8'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

git switch -c <new-branch-name>

在这种状态下的提交会在切换分支后被丢弃,除非在当前状态下创建一个新分支,才能保存住当前提交。

git常用命令

 

git switch

switch只移动HEAD,将HEAD移动到指定的分支上,如果使用-c选项,则根据当前分支创建分支并且将HEAD移动到新创建的分支。

// 移动到master分支
git switch master
// 移动到上一个分支
git switch -
// 创建新分支,并将HEAD移动到新分支
git switch -c branch/1.0
// 移动到master分支并将当前分支未暂存的修改合并到master分支
git switch -m master

git restore

restore命令主要作用范围在上面说的Git的三个区域,restore命令会根据HEAD(指向当前分支)重置暂存区或者工作区间,也可以指定其他分支或提交进行重置。为了防止出错,尽量显示写上命令选项。

// 使用HEAD重置暂存区
git restore -S
// 使用暂存区重置工作空间
git restore -W 
// 使用HEAD重置工作区间
git restore -W -s HEAD
// 使用HEAD同时重置工作空间和暂存区
git restore -s HEAD -WS

git reset

reset命令会同时移动分支和HEAD到指定的commit,这与checkout或者switch只移动HEAD是不同的。所以reset通常用于重置分支。

reset命令的效果分为三步:

  1. 移动分支到指定的commit,然后将HEAD指向分支,结果就是HEAD和分支都指向了一个commit,对应--soft选项。
  2. 用第一步中的commit中的内容重置暂存区,对应--mixed选项。
  3. 用第一步中的commit中的内容重置工作区间, 对象--hard选项。

感觉有用的模式就只用--soft,其余的模式以后在补充。

// 移动分支到上一个提交,效果就是丢弃上一次提交
git reset --soft HEAD^

 

版权声明:本文为Xp545945原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Xp545945/article/details/107597659

智能推荐

CentOS学习之路1-wget下载安装配置

参考1: https://blog.csdn.net/zhaoyanjun6/article/details/79108129 参考2: http://www.souvc.com/?p=1569 CentOS学习之路1-wget下载安装配置 1.wget的安装与基本使用 安装wget yum 安装软件 默认安装保存在/var/cache/yum ,用于所有用户使用。 帮助命令 基本用法 例子:下载...

深入浅出Spring的IOC容器,对Spring的IOC容器源码进行深入理解

文章目录 DispatcherServlet整体继承图 入口:DispatcherServlet.init() HttpServletBean.init() FrameworkServlet.initServletBean() 首先大家,去看Spring的源码入口,第一个就是DispatcherServlet DispatcherServlet整体继承图 入口:DispatcherServlet....

laravel框架的课堂知识点概总

1. MVC 1.1 概念理解 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑 MVC 是一种使用 MVC(Model View Controller ...

Unity人物角色动画系统学习总结

使用动画系统控制人物行走、转向、翻墙、滑行、拾取木头 混合树用来混合多个动画 MatchTarget用来匹配翻墙贴合墙上的某一点,人物以此为支点翻墙跳跃 IK动画类似于MatchTarget,控制两只手上的两个点来指定手的旋转和位置,使得拾取木头时更逼真 创建AnimatorController: 首先创建一个混合树,然后双击 可以看到该混合树有五种状态机,分别是Idle、WalkForward、...

Composer 安装 ThinkPHP6 问题

Composer 安装 ThinkPHP6 问题 先说说问题 一.运行环境要求 二.配置 参考: ThinkPHP6.0完全开发手册 先说说问题 执行ThinkPHP6的安装命令 遇到问题汇总如下: 看提示是要更新版本,执行命令更新。 更新之后,再次安装ThinkPHP,之后遇到如下问题。 尝试了很多方法,依然不能解决。其中包括使用https://packagist.phpcomposer.com...

猜你喜欢

Spring Boot 整合JDBC

今天主要讲解一下SpringBoot如何整合JDBC,没啥理论好说的,直接上代码,看项目整体结构 看一下对应的pom.xml 定义User.java 定义数据源配置,这里使用druid,所以需要写一个配置类 上面指定druid的属性配置,和用户登录的账号信息以及对应的过滤规则: 下面定义数据访问接口和对应的实现: 数据访问层很简单,直接注入JdbcTemplate模板即可,下面再看对应的servi...

html鼠标悬停显示样式

1.显示小手:     在style中添加cursor:pointer 实现鼠标悬停变成小手样式     实例:         其他参数: cursor语法: cursor : auto | crosshair | default | hand | move | help | wait | tex...

Yupoo(又拍网)的系统架构

Yupoo!(又拍网) 是目前国内最大的图片服务提供商,整个网站构建于大量的开源软件之上。以下为其使用到的开源软件信息: 操作系统:CentOS、MacOSX、Ubuntu 服务器:Apache、Nginx、Squid 数据库:MySQLmochiweb、MySQLdb 服务器监控:Cacti、Nagios、 开发语言:PHP、Python、Erlang、Java、Lua 分布式计算:Hadoop...

创建一个Servlet项目流程(入门)

版本 IDEA 2020.2 JDK1.8 apache-tomcat-9.0.36 项目流程 一、IDEA中新建JaveEE项目 项目起名,选择项目存放地址,点击finish创建成功 进入项目后,右键选择项目,选择add Framework Support 选择Web Application,点击OK 此时项目文件夹 在WEB-INF下创建两个目录classes和lib 按ctrl+alt+sh...

Docker部署SpringCloud ELK+RabbitMQ日志

Docker部署SpringCloud ELK+RabbitMQ日志  Im_Coder 原文:https://www.jianshu.com/p/f773f23096a9 一、效果图 image.png 二、ELK是什么? ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。 其中Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,索...