git笔记:git常用命令备忘录

news2024/12/25 9:15:59

1、工作区域和文件状态

1.1、工作区域

git的数据管理分为四个区域:

  • 工作区(Working Directory)

本地工作目录,是我们电脑上的目录,是我们实际编写代码的区域,修改完工作区的文件后可以使用git add命令将工作区中的文件添加到暂存区。

  • 暂存区(Stage/Index)

暂存区是一个临时的存储区域。暂存区的作用是帮助我们管理代码提交的过程,通过将修改内容添加到暂存区,可以将不同修改内容分批次地提交到本地仓库。暂存区实际上是一个文件,保存即将提交的文件列表信息。可以用git reset命令将暂存区中的文件恢复到工作区,也可以用git commit命令将暂存区中的文件提交到本地仓库。

  • 本地仓库(Repository)

本地仓库就是使用git init或使用git clone创建的那个仓库,包含了完整的项目历史和元数据,是git存储代码和版本信息的主要位置。可以使用git checkout命令从本地仓库中切换到不同的分支或版本。

  • 远程仓库(Remote Directory)

远程仓库是托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换。远程仓库的内容能够被分布在多个地点的处于协作关系的本地仓库修改。可以使用git push命令将本地仓库中的数据同步到远程仓库。

在这里插入图片描述

1.2、文件状态

git中的文件的状态:

  • 未跟踪

是我们新创建的、还没有被git管理起来的文件。可以使用git add命令来跟踪一个文件,如果不想被跟踪可以使用git rm命令来删掉或git rm --cache保留在目录里但是不被跟踪

  • 未修改

是我们已经被管理起来,但文件内没有修改的文件

  • 已修改

是我们修改过的文件,但还没有添加到暂存区的文件。修改完成之后使用git add把它设置成已暂存状态

  • 已暂存

是我们修改过的文件,并添加到暂存区的文件。如果不想设置已暂存状态可以使用git reset HEAD加文件名来恢复成已修改状态。已暂存的文件可以使用git commit命令来提交此次修改
在这里插入图片描述
在这里插入图片描述

2、常用命令

2.1、初始化配置

设置你的用户名邮件地址
这个随便填,本质就是一个标记而已

git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

2.2、获取 Git 仓库

在你新建的项目目录内:

git init  #初始化本地仓库 
git clone <url>  #克隆现有的仓库

2.3、添加、修改和提交

git add .  #添加所有改动过的文件(到跟踪状态)
 
git add aaa  #添加指定文件aaa
 
git commit -m 'xx'  #提交 xx是说明
 
git commit -am 'xxx'  #将add和commit合为一步
 
git commit -amend  #修改最后一次提交
 
git rm xx  #删除文件
 
git rm -cached  #停止跟踪文件但不删除

2.4、查看提交历史与状态

git log  #查看提交历史
 
git log --stat  #显示commit历史,以及每次commit发生变更的文件
 
git log -p  #查看指定文件的提交历史
 
git branch -v  #每个分支最后的提交
 
git status  #查看当前状态
 
git diff  #查看变更内容

2.5、撤销操作

git reset -hard HEAD  #撤销工作目录中所有未提交文件的修改内容
 
git checkout HEAD  #撤销指定的未提交文件的修改内容
 
git checkout HEAD.  #撤销所有文件
 
git revert  #撤销指定的提交

2.6、分支与标签

git branch  #显示所有本地分支
 
git branch [branch-name]  #创建一个新的分支
 
git branch -a  #查看所有的分支和远程分支
 
git branch -d [branch-name]  #删除分支
 
git checkout [branch-name]  #切换到指定分支,并更新工作区
 
git tag  #显示已存在的tag
 
git tag -a v2.0 -m 'xxx'  #增加v2.0的tag
 
git tag -d  #删除标签

2.7、合并

git merge [branch]  #合并指定分支到当前分支
 
git merge origin/master  #合并远程master分支至当前分支

2.8、Git 远程仓库

git remote -v  #查看当前的远程仓库
 
git remote add <remote> <url>  #git remote add可以添加一个远程仓库
 
git remote rm  #删除远程仓库
 
git remote show #查看指定远程版本库信息
 
git fetch  #从远程库提取代码
 
git pull origin master  #获取远程分支master并merge到当前分支
 
git push origin master  #将当前分支push到远程master分支
 
git push origin :hotfixes/BJVEP933  #删除远程仓库的hotfixes/BJVEP933分支
 
git push --tags   #把所有tag推送到远程仓库

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

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

相关文章

Web开发:在 try-catch 块中有效捕捉和记录日志的最佳实践

目录 一、控制台程序&#xff08;demo&#xff09; 二、封装方法 三、实现效果 一、控制台程序&#xff08;demo&#xff09; using System.Diagnostics;namespace Progaram {class Program{public class Student{public int Id { get; set; }public string Name { get; se…

DataWhale AI夏令营-《李宏毅深度学习教程》笔记

DataWhale AI夏令营-《李宏毅深度学习教程》笔记 第三章 深度学习基础补充一些基础临界点及其种类逃离临界点方法批量动量自适应学习率学习率调度 分类分类损失批量归一化 之前一直接触的LLM大模型做一些应用&#xff0c;或者传统的自然语言处理&#xff0c;都是直接拿别人的模…

坐牢第三十天(c++)

1.作业&#xff1a; 提示并输入一个字符串&#xff0c;统计该字符串中字母个数、数字个数、空格个数、其他字符的个数 #include <iostream> #include <stdio.h> #include <string> using namespace std; int main(int argc, char const *argv[]) {string st…

什么软件可以用平板远程控制电脑?

在当今快节奏的工作和生活中&#xff0c;使用平板远程控制电脑已成为一种便捷高效的办公方式。无论你是想随时随地访问办公室的电脑&#xff0c;还是需要在旅途中进行紧急工作任务&#xff0c;Splashtop都是你的不二选择。本文将介绍如何使用Splashtop通过平板远程控制电脑&…

谷粒商城实战笔记-260-商城业务-消息队列-可靠投递-消费端确认

文章目录 一,Ack消息确认机制简介1,简介2,两个常用的Api二,消费者端消息确认实战三,RabbitMQ可靠性保障总结1,生产者2,消费者一,Ack消息确认机制简介 消费者端的确认机制(ACK/NACK)是RabbitMQ中一种重要的特性,它允许消费者告知Broker它们是否成功处理了接收到的消息…

ARM32开发——(六)GPIO_USART通信原理

1. 串行通信和并行通信 1.1 串行通信 串行通信是一种数据传输的方式&#xff0c;它是指将数据按照一位一位的顺序依次发送和接收&#xff0c;常用于远距离通信、嵌入式系统和低带宽传输场景下。串行通信相对于并行通信而言&#xff0c;只需要传输一条数据线&#xff0c;相对简…

Cgroup Driver配置异常导致的节点k8s涉及到的pod无法启动问题的处理

文章目录 前言一、现象二、问题定位1.docker服务检查2.message日志检查3.检查Cgroup Driver的配置4.修改/etc/docker/daemon.json文件 总结 前言 Cgroup Driver配置异常导致的节点k8s涉及到的pod无法启动问题的处理。 同事有台云主机重启之后&#xff0c;发现k8s相关的pod全部…

优维er看网易云之崩:巨头稍息的一小步,行业前进的一大步

撰文&#xff1a;右耳失聪的左撇子 制图&#xff1a;脾气超好 8月19日&#xff0c;网易云当了半天的“网抑云”&#xff0c;不开玩笑&#xff0c;我认为这是一场&#xff1a;真技术滑铁卢。 和很多朋友一样&#xff0c;数字音乐早已经深度融入我的日常生活&#xff0c;而作为一…

xss-labs靶场通关详解(11-15关)

第11关 referer 进行抓包 添加referer:click me!" type"button" οnmοuseοver"alert(/xss/)进行放包 第12关 进行抓包 修改User Agent&#xff1a;click me!" type"button" οnmοuseοver"alert(/xss/)进行放包 第13关 抓包 修改C…

python列表去重,一行实现 太优雅~

今天咱们来聊聊在 Python 中如何优雅地实现列表去重。 这是一个非常经典的问题&#xff0c;虽然很多人都会&#xff0c;但如何更优雅的实现呢&#xff1f;这里有不少有趣的解决方法。话不多说&#xff0c;咱们直奔主题。 方法一&#xff1a;用 set 去重 先来看个最简单的方法…

C语言基础(二十一)

C语言中的链表是一种常见的数据结构&#xff0c;用于存储一系列的元素&#xff0c;但与数组不同的是&#xff0c;链表中的元素在内存中不是连续存储的。链表中的每个元素称为节点&#xff08;Node&#xff09;&#xff0c;每个节点包含两个部分&#xff1a;一部分是存储数据的数…

智能开发工具GoLand v2024.2全新发布——更好地支持Go框架和语言

GoLand 使 Go 代码的阅读、编写和更改变得非常容易。即时错误检测和修复建议&#xff0c;通过一步撤消快速安全重构&#xff0c;智能代码完成&#xff0c;死代码检测和文档提示帮助所有 Go 开发人员&#xff0c;从新手到经验丰富的专业人士&#xff0c;创建快速、高效、和可靠的…

美创科技荣获“中国数据安全领域最具商业合作价值企业”

近日&#xff0c;数据智能产业创新服务媒体“数据猿”联合上海大数据联盟正式发布《2024中国数据安全领域最具商业合作价值企业盘点》&#xff0c;美创科技凭借在数据安全领域专业领先能力&#xff0c;荣获“最具商业合作价值企业”。 《2024中国数据安全领域最具商业合作价值企…

【Qt】Qt系统 | Qt文件

文章目录 一. 输入输出设备类二. 文件读写类三. 文件和目录信息 文件操作是应用程序必不可少的部分。Qt 作为一个通用开发库&#xff0c;提供了跨平台的文件操作能力&#xff0c;封装了很多关于文件的类&#xff0c;通过这些类能够对文件系统进行操作&#xff0c;如文件读写、文…

Ubuntu上搭建Nginx环境

1. 软件包下载 nginx下载地址 下载linux版本的nginx&#xff0c;如图圈示 2. 将下载好的软件包上传至Linux服务器 假设上传到 /opt/nginx 目录,进入目录 cd /opt/nginx解压&#xff0c;根据版本自行修改版本号 tar zxvf nginx-1.16.0.tar.gz3.安装 安装编译所需的依赖&a…

IGE-LIO:充分利用强度信息克服激光退化场景下的定位精度

更多优质内容&#xff0c;请关注公众号&#xff1a;智驾机器人技术前线 1.论文信息 论文标题&#xff1a;IGE-LIO: Intensity Gradient Enhanced Tightly-Coupled LiDAR-Inertial Odometry 作者&#xff1a;Ziyu Chen, Hui Zhu, Biao Yu, Chunmao Jiang, Chen Hua, Xuhui Fu a…

android openGL ES详解——深度缓冲区

一、深度缓冲区概念 深度缓存区是指一块专门内存区域&#xff0c;存储在显存中&#xff0c;用于存储屏幕上所绘制图形的每个像素点的深度值。深度值越大&#xff0c;离观察者越远。深度值越小&#xff0c;里观察者越近。 深度缓冲区与帧缓冲区相对应&#xff0c;用于记录上面…

Linux 进程 | 进程优先级进程的环境变量

文章目录 进程概念4、进程优先级4.1基本概念4.2查看系统进程4.2.1 ps -l4.2.2 PRI & NI 4.3用top命令更改已存在进程的nice&#xff1a; 5、环境变量5.1常见环境变量5.2查看环境变量5.3测试PATH配置环境变量 5.4代码中获取环境变量5.4代码中获取环境变量 进程概念 4、进程…

Linux网络:TCP UDP socket

Linux网络&#xff1a;TCP & UDP socket socket 套接字sockaddr网络字节序IP地址转换bzero UDP socketsocketbindrecvfromsendto TCP socketsocketbindlistenconnectacceptsendrecv 本博客讲解 Linux 下的 TCP 和 UDP 套接字编程。无论是创建套接字、绑定地址&#xff0c;还…

软件设计师全套备考系列文章16 -- 程序设计语言基础知识

软考-- 软件设计师&#xff08;16&#xff09;-- 程序设计语言基础知识 文章目录 软考-- 软件设计师&#xff08;16&#xff09;-- 程序设计语言基础知识前言一、章节考点二、基本概念三、文法四、有限自动机五、前缀、中缀、后缀表达式六、传值和引用(传址)七、各个程序语言的…