当前位置: 首页 > news >正文

GIT命令操作大全

文章目录

    • 一、前言
    • 二、工作模块
      • 2.1 Workspace:工作区
      • 2.2 Index / Stage:暂存区
      • 2.3 Repository:本地仓库
      • 2.4Remote:远程仓库
    • 三、GIT基本配置
    • 四、GIT项目代码管理
      • 4.1 初始化git仓库
      • 4.2 提交到暂存区(stage)
      • 4.3 将暂存区的文件恢复到工作区
      • 4.4 查看工作区、暂存区的状态
      • 4.5 移除暂存区的修改
      • 4.6 将缓存区文件提交到本地仓库
      • 4.7 撤销commit提交
      • 4.8 查看日志
    • 五、版本控制
      • 5.1 回到指定哈希值对应的版本
      • 5.2 版本回退
    • 六、GIT分支
      • 6.1 查看分支
      • 6.2 创建分支
      • 6.3 切换分支
      • 6.4 创建并切换分支
      • 6.5 合并分支
      • 6.6 删除分支
      • 6.7 删除远程分支
    • 七、远程仓库(团队合作)
      • 7.1 克隆远程仓库
      • 7.2本地仓库与远程库进行关联
      • 7.3 查看远程仓库地址别名
      • 7.4 新建远程仓库地址别名
      • 7.5 删除本地仓库中的远程仓库别名
      • 7.6 重命名远程仓库地址别名
      • 7.7 远程库的修改拉取到本地
      • 7.8 将本地的分支推送到远程仓库(先拉取在push)

一、前言

Git是目前世界上最先进的分布式版本控制系统,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。通过远程仓库实现多人协作开发。

二、工作模块

在这里插入图片描述

2.1 Workspace:工作区

就是你在电脑上看到的目录,有一个隐藏文件夹.git,这个不属于工作区,这是版本库。

2.2 Index / Stage:暂存区

暂缓区是存在于版本库中的,也就是.git文件下。通过git add将工作区修改的文件提交到暂存区中

2.3 Repository:本地仓库

这个就代表整个项目在本地电脑中存放的仓库,通过git commit将暂存区数据提交到本地仓库中。

2.4Remote:远程仓库

本地仓库通过pull拉去远程仓库数据,然后push将本地仓库修改内容提交到远程仓库中。

三、GIT基本配置

  1. 检查git版本:git --version
  2. 查看git相关命令:git --help
  3. 查看当前的git配置信息: git config --list
  4. 查看/设置git用户名: git config user.namegit config --global user.name 名称
  5. 查看/设置git邮箱: git config user.namegit config --global user.email 邮箱

四、GIT项目代码管理

4.1 初始化git仓库

git init

4.2 提交到暂存区(stage)

  1. git add * 将工作区所有修改添加到暂存区

  2. git add . 将工作区所有修改添加到暂存区

  3. git add <file-name> 将指定文件添加到暂存区

  4. git add *.js 提交所有.js格式文件

  5. git add -f <file-name> 强制添加 指定文件添加到暂存区

注:指的是文件的名称

4.3 将暂存区的文件恢复到工作区

  1. git reset <file-name> 从暂存区恢复指定到工作区

  2. git reset -- . 从暂存区恢复所有文件到工作区

  3. git reset --hard ` 把暂存区的修改退回到工作区

4.4 查看工作区、暂存区的状态

git status

4.5 移除暂存区的修改

git rm --cached <file-name>

4.6 将缓存区文件提交到本地仓库

  1. git commit <file-name> ... "相关的记录信息" 将暂缓区指定文件提交到本地仓库
  2. git commit -m "相关的记录信息" 将暂缓区的所有文件提交到本地仓库
  3. git commit -am "相关的记录信息" 跳过暂存区域直接提交更新并添加备注信息
  4. git commit --amend "相关的记录信息" 使用一次新的commit,替代上次提交

4.7 撤销commit提交

  1. git revert HEAD^ 撤销上上次的提交
  2. git revert HEAD 撤销最近的一个提交(创建了一个撤销上次提交(HEAD)的新提交)

4.8 查看日志

  1. 查看历史提交(commit)记录
  1. git log //查看历史commit记录注:空格向下翻页,b向上翻页,q退出
  2. git log --oneline //以简洁的一行显示,包含简洁哈希索引值
  3. git log --pretty=oneline //查看日志且并且显示版本
  4. git log --stat //显示每个commit中哪些文件被修改,分别添加或删除了多少行
  1. git log --graph 查看分支合并图

  2. git log --oneline --graph 查看版本线图

五、版本控制

5.1 回到指定哈希值对应的版本

  1. git reset --hard <Hash> 注: 是版本的哈希值
  2. git reset --hard HEAD 强制工作区、暂存区、本地库为当前HEAD指针所在的版本

5.2 版本回退

git reset --hard HEAD~1 后退一个版本
注:~后面的数字表示回退多少个版本

六、GIT分支

6.1 查看分支

  1. git branch 查看所有本地分支
  2. git branch -r 查看所有远程分支
  3. git branch -a 查看所有远程分支和本地分支
  4. git branch --merged 查看已经合并的分支

6.2 创建分支

git branch <branch-name>
注: 是分支的名称

6.3 切换分支

  1. git checKout <branch-name> 切换到指定分支,并更新工作区

  2. git checkout - 切换到上一个分支

6.4 创建并切换分支

git chechout -b <branch-name>

6.5 合并分支

git merge <branch-name>

6.6 删除分支

  1. git branch -d <branch-name> 只能删除已经被当前分支合并的分支
  2. git branch -D <>branch-name> 强制删除分支

6.7 删除远程分支

git push origin --delete <remote-branch-name>
注: 远程分支名

七、远程仓库(团队合作)

7.1 克隆远程仓库

git clone <url>

7.2本地仓库与远程库进行关联

git remote add origin <url>

7.3 查看远程仓库地址别名

git remote -v

7.4 新建远程仓库地址别名

git remote add <alias> <url>
注: 远程仓库的别名

7.5 删除本地仓库中的远程仓库别名

git remote rm <alias>

7.6 重命名远程仓库地址别名

git remote rename <old-alias> <new-alias>

7.7 远程库的修改拉取到本地

  1. git fetch <alias/url> <remote-branch-name> 抓取远程仓库的指定分支到本地,但没有合并
  2. git merge <alias-branch-name> 将抓取下来的远程的分支,跟当前所在分支进行合并
  3. git pull <alias/url> <remote-branch-name> 拉取到本地,并且与当前所在的分支进行合并

7.8 将本地的分支推送到远程仓库(先拉取在push)

  1. git push <alias/url> <branch-name> 将本地的每个分支推送到远程仓库
  2. git push <alias/url> --force 强行推送 当前分支到远程仓库,即使有冲突
  3. git push <alias/url> --all 推送所有本地分支到远程仓库

相关文章:

GIT命令操作大全

文章目录一、前言二、工作模块2.1 Workspace&#xff1a;工作区2.2 Index / Stage&#xff1a;暂存区2.3 Repository&#xff1a;本地仓库2.4Remote&#xff1a;远程仓库三、GIT基本配置四、GIT项目代码管理4.1 初始化git仓库4.2 提交到暂存区(stage)4.3 将暂存区的文件恢复到工…...

突破传统开发模式,亚马逊云科技助力中科院加速推动合成生物学

当数字技术成为整个社会运行的底座&#xff0c;生物科学也能借力云计算从诸多繁琐重复的工作中解放出来&#xff0c;专注于生物设计与创新。来看看亚马逊云科技如何与TIBCAS合作&#xff0c;推动合成生物学的发展。 明确核心需求&#xff0c;选择合作伙伴 TIBCAS选择与亚马逊…...

分享开放通达信l2接口的过程,开发之后怎么使用?

随着互联网的不断进步&#xff0c;信息技术的不断发展&#xff0c;通达信l2接口技术逐步成熟。那么&#xff0c;这些开放通达信l2接口开发的过程是怎么样的呢?期间又会遇到什么问题&#xff0c;开放之后又会怎么使用呢&#xff1f;这篇文章带你深入了解。 通达信l2接口不像一…...

33、基于51单片机老人防跌倒蜂鸣器报警系统加速度检测

背景技术 老年人出门由于身体不灵活、视力较差&#xff0c;容易发生跌倒&#xff0c;现用的老年人跌倒报警装置是通过无线对讲系统研发的&#xff0c;它外观精美&#xff0c;自动化程度高&#xff0c;有很强的专业性&#xff0c;但是&#xff0c;设计者忽略了一个问题&#xf…...

【项目】基于SpringBoot+Freemarker+Mybatis+MySQL+LayUI实现CRM智能办公系统

这里写目录标题CRM基本概念CRM分类模块功能描述项目代码application-dev.yml部分页面代码CRM基本概念 圈内存在这么一句话&#xff1a;“世上本来没有 CRM&#xff0c;大家的生意越来越难做了&#xff0c;才有了 CRM。” 在同质化竞争时代&#xff0c;顾客资产尤为重要&#x…...

手写识别字体的步骤是什么?怎么识别图片中的文字?

手写识别字体的步骤是什么&#xff1f;怎么识别图片中的文字&#xff1f; 1. 打开信风工具网&#xff0c;点击拍照按钮&#xff0c;选择拍图识字模式&#xff0c;对准需要识别的文件进行拍摄&#xff61;在线工具地址&#xff1a; https://ocr.bytedance.zj.cn/image/ImageT…...

Mysql 存储过程

什么是存储过程&#xff1f; 存储过程是事先经过编译并存储在数据库的一段sql语句的集合 如何创建一个存储过程&#xff1f; create procedure 存储过程名称([参数列表]) beginsql语句; end#例 create procedure p1() beginselect * from t_goods;select * from t_user; end如…...

【LeetCode】每日一题(3)

目录 题目&#xff1a;1234. 替换子串得到平衡字符串 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 写在最后&#xff1a; 题目&#xff1a;1234. 替换子串得到平衡…...

websocket学习

1.什么是websocket 1&#xff09;首先websocket和http一样&#xff0c;是一种网络通信协议&#xff0c;来自HTML5的特性&#xff1b; 2&#xff09;他可以使客户端和服务端进行双工通信&#xff0c;简单来说&#xff0c;就是双向通信&#xff1a;比如我们熟悉的http协议&…...

Java面试题及答案整理汇总(2023最新版)

前言 面试前还是很有必要针对性的刷一些题&#xff0c;很多朋友的实战能力很强&#xff0c;但是理论比较薄弱&#xff0c;面试前不做准备是很吃亏的。这里整理了很多面试常考的一些面试题&#xff0c;希望能帮助到你面试前的复习并且找到一个好的工作&#xff0c;也节省你在网…...

公司来了个卷王,我愿称之为王中王,让人崩溃

前几天我们公司一下子也来了几个新人&#xff0c;这些年前人是真能熬啊&#xff0c;本来我们几个老油子都是每天稍微加会班就打算走了&#xff0c;这几个新人一直不走&#xff0c;搞得我们也不好走。2023年春招就要开始了&#xff0c;最近内卷严重&#xff0c;各种跳槽裁员&…...

波奇学c语言:代码的编译和链接

test.c&#xff08;源文件&#xff09;->编译->test.obj&#xff08;目标文件&#xff09;->链接->test.exe&#xff08;可执行文件&#xff09;编译1.预编译&#xff08;预处理&#xff09;&#xff1a;text.c->text.i使用gcc -E test.c 进行停止预处理指令&am…...

计算机网络原理--传输层协议(TCP协议十大特性)

目录 1.认识TCP协议 TCP的协议段格式 2. 确认应答机制 3.超时重传 4.连接管理 <...

nvm控制node版本

安装 nvm 1、下载 nvm 官网安装包&#xff1a; github 选择 nvm-setup.exe 下载 2、安装 1、选择 nvm 安装目录&#xff08;可自定义&#xff09; 2、选择 node 安装目录&#xff08;如有安装过&#xff0c;可以选择以前安装目录&#xff0c;可 cdm 输入 where node 查看原nod…...

从0到1一步一步玩转openEuler--13 openEuler用户组管理

文章目录13.1 创建用户组13.1.1 groupadd命令13.1.2 用户组信息文件13.1.3 创建用户组实例13.2 修改用户组13.2.1 修改GID13.2.2 修改用户组名13.3 删除用户组13.4 将用户加入用户组或从用户组中移除13.5 切换用户组在Linux中&#xff0c;每个普通用户都有一个账户&#xff0c;…...

知不知道什么叫米筐量化?怎么来的?

现在量化市场范围越来越大&#xff0c;各种量化系统也是普遍性的了&#xff0c;不过米匡量化这个开发系统通常是由交易接口的专业开发团队开发的的结果&#xff0c;那么米匡量化的终端又是是怎么开发成功的呢&#xff1f;首先&#xff0c;我们可以从api接口的调用来了解&#x…...

Urho3D 事件Events

在脚本中&#xff0c;子系统通过以下全局财产可用&#xff1a;时间、文件系统、日志、缓存、网络、输入、ui、音频、引擎、图形、渲染器、脚本、控制台、debugHud、数据库。请注意&#xff0c;由于WorkQueue和Profiler的低级性质&#xff0c;它们不可用于脚本。 事件本身不需要…...

Rust学习入门--【8】复合类型

复合类型&#xff08;compound type&#xff09; 可以将多个不同类型的值组合为一个类型。 Rust中提供了两种内置的复合数据类型&#xff1a;元组&#xff08;tuple&#xff09;和数组&#xff08;array&#xff09;。 元组类型 元组是一个具有 固定长度 的数据集合 —— 无…...

【整理六】

1、props和state相同点和不同点&#xff1f;render方法在哪些情况下会执行&#xff1f; props是一个从外部传进组件的参数&#xff0c;由于React具有单向数据流的特性&#xff0c;所以他的主要作用是从父组件向子组件中传递数据&#xff0c;它是不可改变的&#xff0c;如果想要…...

Ubuntu20.04安装MySQL5.7与远程连接

一、安装MySQL5.7 1.更换镜像源 sudo cp /etc/apt/sources.list /etc/apt/sources.list.old #备份原来的文件 sudo vim /etc/apt/sources.list #修改sources.list文件配置文件内容如下所示&#xff1a; # 清华镜像源 deb https://mirrors.tuna.tsinghua.edu.cn/ubu…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...