Git基本操作命令

news2024/11/17 15:44:12

目录

一、简介

二、基本命令使用

(1) git add ---将该文件添加到暂存区

(2) git status --- 命令用于查看在上次提交之后是否有对文件进行再次修改

(3) git diff -- 比较文件在暂存区和工作区的差异

(4) git commit  --- 将暂存区内容添加到本地仓库中

(5) git reset --指定退回某一次提交的版本

(6) git rm -- 将文件从暂存区和工作区中删除

(7) git mv --移动或重命名一个文件、目录或软连接

(8) 查看提交日志

     git log --查看历史提交记录

     git blame  - 以列表形式查看指定文件的历史修改记录

一、简介

Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。

Git 常用的是以下 6 个命令:git clonegit pushgit add 、git commitgit checkoutgit pull。

说明:

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:版本库或本地仓库
  • remote repository:远程仓库

提交与修改

下表列出了有关创建与提交你的项目的快照的命令:

命令说明
git add添加文件到暂存区
git status查看仓库当前的状态,显示有变更的文件。
git diff比较文件的不同,即暂存区和工作区的差异。
git commit提交暂存区到本地仓库。
git reset回退版本。
git rm将文件从暂存区和工作区中删除。
git mv移动或重命名工作区文件。

二、基本命令使用

(1) git add ---将该文件添加到暂存区

命令格式:

1、添加一个或多个文件到暂存区
git add [file1] [file2] ...

2、添加指定目录到暂存区,包括子目录
git add [dir]

3、添加当前目录下的所有文件到暂存区
git add .

使用案例:


$ touch testAdd.txt                # 创建文件
$ touch hello.php            # 创建文件
$ git status -s       # 查看项目的当前状态
?? testAdd.txt 
?? hello.php
$ git add testAdd.txt  hello.php    # 执行 git add 命令来添加文件
$ git status -s       
A  testAdd.txt
A  hello.php


$ vim testAdd.txt  # 修改文件内容
$ git status -s   
AM testAdd.txt            # AM 状态的意思是这个文件在将它添加到缓存之后又有改动
A  hello.php
$ git add testAdd.txt     # 执行 git add 命令来添加文件
$ git status -s
A  testAdd.txt
A  hello.php



(2) git status --- 命令用于查看在上次提交之后是否有对文件进行再次修改

使用 -s 参数来获得简短的输出结果。

(3) git diff -- 比较文件在暂存区和工作区的差异

giit diff 命令显示已写入暂存区和已经被修改但尚未写入暂存区文件的区别。

命令格式

尚未缓存的改动:git diff
查看已缓存的改动: git diff --cached
查看已缓存的与未缓存的所有改动:git diff HEAD
显示摘要而非整个 diff:git diff --stat


# 1、显示暂存区和工作区的差异
$ git diff [file]    

# 2、显示暂存区和上一次提交(commit)的差异
$ git diff --cached [file]  
或
$ git diff --staged [file] 


# 3、显示两次提交之间的差异
$ git diff [first-branch]...[second-branch]


使用案例:

修改testadd.txt中的内容,在第二行添加“第二次修改”。

git diff 查看暂存区与工作去查表

git add 将修改每日添加暂存区

git diff --cached 查看已经缓存的改动 

 

(4) git commit  --- 将暂存区内容添加到本地仓库中

命令格式:

1、提交暂存区到本地仓库([message] 可以是一些备注信息)
$ git commit -m [message]

2、提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]

3、-a 参数设置修改文件后不需要执行 git add 命令,直接来提交
$ git commit -am

(5) git reset --指定退回某一次提交的版本

命令格式:

命令格式:
git reset [--soft | --mixed | --hard] [HEAD]


1、--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
    git reset HEAD

示例:
$ git reset HEAD^            # 回退所有内容到上一个版本  
$ git reset HEAD^ hello.php  # 回退 hello.php 文件的版本到上一个版本  
$ git  reset  052e           # 回退到指定版本

2、--soft 参数用于回退到某个版本
示例:
$ git reset --soft HEAD~3   # 回退上上上一个版本 

3、--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
示例:
$ git reset --hard HEAD~3  # 回退上上上一个版本  
$ git reset –hard bae128  # 回退到某个版本回退点之前的所有信息。 
$ git reset --hard origin/master    # 将本地的状态回退到和远程的一样 



 注意:谨慎使用 –-hard 参数,它会删除回退点之前的所有信息。

HEAD 说明:


    HEAD 表示当前版本
    HEAD^ 上一个版本
    HEAD^^ 上上一个版本
    HEAD^^^ 上上上一个版本
    以此类推...

可以使用 ~数字表示
    HEAD~0 表示当前版本
    HEAD~1 上一个版本
    HEAD^2 上上一个版本
    HEAD^3 上上上一个版本
    以此类推...

(6) git rm -- 将文件从暂存区和工作区中删除

命令格式:

1、将文件从暂存区和工作区中删除
git rm <file>

2、-f: 强制删除选项(如果删除之前修改过并且已经放到暂存区域的话需要用-f)
$ git rm -f runoob.txt   # 强行从暂存区和工作区中删除修改后的 runoob.txt 文件

3、 --cached: 想把文件从暂存区域移除,但仍然希望保留在当前工作目录中,即仅是从跟踪清单中删除
git rm --cached <file>

$ git rm --cached runoob.txt  # 从暂存区中删除 runoob.txt 文件

4、–r 递归删除
$ git rm –r *     # 进入某个目录中,执行此语句,会删除该目录下的所有文件和子目录。

(7) git mv --移动或重命名一个文件、目录或软连接

1、git mv [file] [newfile]  # 将file 移动成newfile

2、如果新文件名已经存在,但还是要重命名它,可以使用 -f 参数:
git mv -f [file] [newfile]

(8) 查看提交日志

     git log --查看历史提交记录

     git blame <file> - 以列表形式查看指定文件的历史修改记录

1、git log - 查看历史提交记录。
2、git blame <file> - 以列表形式查看指定文件的历史修改记录。
 
3、--oneline 选项来查看历史记录的简洁的版本
$ git log --oneline

4、--graph 选项,查看历史中什么时候出现了分支、合并

5、--reverse 参数来逆向显示所有日志

6、--author=A 查找指定用户A的提交日志
$ git log --author=Linus --oneline -5

7、查看指定文件的修改记录可以使用 git blame 命令
git blame <file>

$ git blame README 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/682271.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端实现实时数据更新:EventSource

前言 大看板相信很多人都做过&#xff0c;通常就是用来展示数据的。最初一些同事&#xff08;包括我自己&#xff09;都是通过定时器来实现的&#xff0c;每隔多长时间发送一次请求。后来用户说页面不刷新或者是页面卡死了&#xff0c;讨论的解决方案是改成WebSocket实时推送消…

AI绘图软件分享:Midjourney 基础教程(四)参数进阶

大家好&#xff0c;我是权知星球&#xff0c;今天我们继续来学习Midjourney 基础教程&#xff08;四&#xff09;&#xff1a;Midjourney 参数进阶。 通过前⼏篇⽂章的学习&#xff0c;我们知道了&#xff0c;想要掌握 Midjourney AI 绘画技术&#xff0c;先需要学习掌握常⽤的…

还在烦恼代码写不出来?低代码助力实现“无码”搭建系统平台

摘要&#xff1a;本文由葡萄城技术团队于CSDN原创并首发。葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 据说… 每敲出来一行代码 就有一根头发离我而去… 而每解决掉一个bug 就有一个毛囊开始休养生息… 程序猿&#xff0c;一个让人既爱又…

USR-C216配置客户端模式,手机接收数据

若是不清楚现在模块什么配置可先恢复出厂设置&#xff0c;将nReload拉低3S即可。 此时模块发出热点名字为USR-C216,无密码 电脑连接后在浏览器输入10.10.100.254&#xff0c;进入后密码和用户名为admin

多数人都不会用,有了这些视频APP,再也不担心失效!

阿虚储物间里一大热门下载内容就是影视类APP了 但相信有这类需求的粉丝都知道&#xff1a;这类APP要么你忍受烦人的广告&#xff0c;要么就找去广告版&#xff0c;但去广告版有个最大的问题就是经&#xff01;常&#xff01;失&#xff01;效&#xff01; 其实阿虚早就介绍过…

窗口层级树的构建

窗口层级树的构建 参考&#xff1a; android 13 WMS/AMS系统开发-窗口层级相关DisplayArea,WindowContainer第二节 在上一节dumpsys activity containers中&#xff0c;层级树中有如下的标识符&#xff1a; WindowedMagnificationHideDisplayCutoutOneHandedHideDisplayCut…

【软考网络管理员】2023年软考网管初级常见知识考点(4)-局域网基本概念

涉及知识点 局域网特点&#xff0c;局域网体系结构&#xff0c;局域网拓扑结构&#xff0c;局域网传输介质&#xff0c;软考网络管理员常考知识点&#xff0c;软考网络管理员网络安全&#xff0c;网络管理员考点汇总。 文章目录 涉及知识点前言一、局域网的特点二、局域网体系…

Apache RocketMQ EventBridge:构建下一代事件驱动引擎

作者&#xff1a;沈林 前言 事件驱动&#xff0c;这个词在部分人印象中&#xff0c;它是一个过时的技术——没什么新意。从时间上看&#xff0c;确实也是这样&#xff0c;上世纪 60 年代&#xff0c;事件驱动就已经被正式提出&#xff0c;经常会被在 GUI 编程中。但是在有些人…

IO总线控制器模块在工业自动化中的关键应用

IO总线控制器模块是工业自动化系统中的关键组件&#xff0c;其功能和特点包括&#xff1a; IO集成&#xff1a;IO总线控制器模块通过支持多种IO接口和协议&#xff0c;实现了各种数字和模拟信号的集成和控制。它能够与各种传感器、执行器和其他设备进行通信和数据交换。 实时性…

TCP协议的滑动窗口具体是怎样控制流量的?

&#x1f482; 个人网站:【海拥】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 前言TCP协议概述滑动窗…

小航助学2023年6月GESP_C++四级试卷(含题库答题软件账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统&#xff08;含题库答题软件账号&#xff09;_程序猿下山的博客-CSDN博客 单选题2.0分 删除编辑附件图文 答案:D 第1题高级语言编写的程序需要经过以下&#xff08; &#xff09;操作&#xff0c;可以生成在…

1分钟教你从0-1搭建Monorepo多包项目

1、monorepo是啥 在了解Monorepo之前&#xff0c;先说一下Multirepo Multirepo&#xff1a;指定的是不同项目由不同的仓库来存放管理 每个仓库都维护着各项目的npm包依赖 Monorepo指的是包含多个项目的单个仓库。 各个项目可以单独运行、打包、发布 Multirepo&#xff1a;分散式…

【CV】EfficientNet相比resnet有哪些优点,什么是深度可分离卷积

目录 前言使用深度可分离卷积普通卷积的计算参数量深度可分离卷积分为两个步骤&#xff1a;深度卷积和逐点卷积 使用多个缩放因子使用 Swish 激活函数 前言 高效的神经网络主要通过&#xff1a;1. 减少参数数量&#xff1b;2. 量化参数&#xff0c;减少每个参数占用内存 目前的…

Transformer中的Q,K,V

Query&#xff0c;Key&#xff0c;Value的概念取自于信息检索系统&#xff0c;举个简单的搜索的例子来说。当你在某电商平台搜索某件商品&#xff08;年轻女士冬季穿的红色薄款羽绒服&#xff09;时&#xff0c;你在搜索引擎上输入的内容便是Query&#xff0c;然后搜索引擎根据…

【历史上的今天】6 月 25 日:笔记本之父诞生;Windows 98 发布;通用产品代码首次商用

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 6 月 25 日&#xff0c;在 1951 年的这一天&#xff0c;世界上第一部彩色电视节目播出。电视经过了许多年的发展&#xff0c;人类的娱乐途径随着互联网的到来变…

SpringBoot 如何使用 Spring Test 进行集成测试

SpringBoot 如何使用 Spring Test 进行集成测试 简介 在开发过程中&#xff0c;单元测试是不可或缺的&#xff0c;它可以帮助我们及时发现代码的问题并进行修复&#xff0c;从而提高代码的质量和可维护性。但是&#xff0c;单元测试只能测试单个方法或类的功能&#xff0c;无…

HTTP | 深度解析HTTPS比HTTP 更安全的原因

目录 1. 不安全的 HTTP &#x1f333; 为什么 HTTP 协议不安全呢&#xff1f; 容易被窃听 容易被篡改 容易被伪造身份 &#x1f333; HTTPS 是如何解决以上安全性问题的呢&#xff1f; 数据加密 完整性摘要 数字证书 2. 加密算法 &#xff08;1&#xff09;对称加密…

Springboot宠物医院管理系统的设计与实现-计算机毕设 附源码84724

Springboot宠物医院管理系统的设计与实现 摘 要 现如今生活质量提高&#xff0c;人们追求精神健康&#xff0c;与家中宠物朝夕相处&#xff0c;感情深厚&#xff0c;宠物渐渐成了我们身边的朋友。因而宠物生病了&#xff0c;需要去看病&#xff0c;自古医院救死扶伤&#xff0c…

LabVIEW开发汽车发动机故障模拟器

LabVIEW开发汽车发动机故障模拟器 汽车发动机故障模拟器是一种电子培训系统&#xff0c;旨在指导初学者了解发动机的各种故障。有一些参数称为发动机故障&#xff0c;例如脏油、压缩不良、冷却液损失、润滑不良、散热器堵塞、火花爆震和火花塞磨损。任何系统在存在时都有一些缺…

分布式系统的事务处理:2PC与3PC的演化与挑战

在传统的单体应用中&#xff0c;事务管理相对较为简单&#xff0c;可以通过数据库事务来实现数据的一致性。然而&#xff0c;随着系统的拆分和分布式架构的应用&#xff0c;跨多个服务的事务操作变得更为复杂。这就引出了分布式事务的概念&#xff0c;它是保证分布式系统数据一…