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

Git常用命令和QA(网摘)

主要内容

      • 常用命令
      • git checkout --orphan 分支与 git checkout -b 分支区别
      • git如何创建一个新的空白分支branch
      • git开发分支本地分支合并远程分支
      • git remote prune origin
      • git log如何退出?如何退出git log或git commit模式
        • git log如何退出
        • git commit 的退出
      • git强制pull线上代码合并到本地

常用命令

git init 初始化仓库

git clone 仓库地址 拷贝一份远程仓库

git status 查看仓库当前的状态,显示有变更的文件。

git add . 添加所有修改

git add 文件名称,不同文件名用空格分开

git commit -m ‘说明’ 提交到本地仓库

git reset 回退版本

git checkout 版本 。git checkout 分支版本无效时,是因为目录不对,用 cd 目录名 进入某个目录后再切换分支

git pull 命令用于从远程获取代码并合并本地的版本。git pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写。 命令格式如下:git pull origin dev

git push 提交代码。命令格式如下:git push origin dev

git config --list 查看配置信息
git config --global user.name “用户名”
git config --global user.email “邮箱”

git branch 列表分支,创建分支,删除分支
1、查看所有分支:git branch -a
2、创建分支:git branch 分支名
3、切换分支:git checkout 分支名
4、删除分支:git branch -D 分支名

1、git如何放弃所有本地修改

git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset --hard HASH #返回到某个节点,不保留修改。
git reset --soft HASH #返回到某个节点。保留修改

2、git怎样删除未监视的文件untracked files

#删除 untracked files
git clean -f
#连 untracked 的目录也一起删掉
git clean -fd
# 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd
# 在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nf
git clean -nfd

3、git push 提示 ! [rejected] dev -> dev (non-fast-forward)

git fetch origin dev //获取远程dev分支的修改
git merge origin dev // 合并远程dev分支
git pull origin dev // 更新本地的代码

如果此时本地代码冲突, 手动处理一下,重新提交就可以了。还有一个非常Low的方式,先把自己本地修改的代码备份打包一下,重新clone代码,然后ctrl+V,解决!


git checkout --orphan 分支与 git checkout -b 分支区别

orphan分支是将N个完全不同的项目作为N个分支放在同一个仓库中, 并且分支之间互不影响。如果不在orphan分支里提交东西, 这个分支其实没有创建。

git checkout -b 分支是强制创建新一分支,如果创建的分支名本地已经有了,会强制覆盖为新建立的分支。而用checkout切换分支时, 本地文件系统会瞬间发生变化.

git checkout --orphan <branch> 从当前的分支上建立一个没有任何提交历史记录的分支。但是当前分支的内容一一俱全。简单的理解你的钱总数按现在的算,从开始到现在赚钱的记录都没有了。而git checkout -b <branch> 是你的钱总数按现在的算,之前的赚钱记录也记着。


git如何创建一个新的空白分支branch

在跟团队合作开发时,git管理人员在git服务器上新开了一个分支prod-2021.开发人员在本地当前开发的分支dev上,新建立一个分支prod-2021时,会把dev分支的所有log带过来,在pull origin prod-2021时会跟dev上的合并在一起从而导致问题。所以我们需要做一个新的空白分支然后去更新。

git创建一个新的空白分支branch
1、创建一个orphan分支。orphan是孤岛的意思。 git checkout --orphan prod-2021

2、删除prod-2021分支上的所有文件 git rm -rf 。

3、拉取远程上的分支 git pull origin prod-2021

拉取完成,可以在此进行开发。通过这种方式创建的分支是空的,没有任何父节点,第一次提交,是这个分支的跟节点。

git checkout -b branchname 这个命令会根据当前分支的当前状态新建一个分支,这个分支包含当前分支的所有log,用checkout切换分支时, 本地文件系统会瞬间发生变化。而orphan分支如果不在分支里提交东西, 这个分支其实没有创建。


git开发分支本地分支合并远程分支

我们先理解分支的概念,远程分支即服务器上面的分支,本地分支即同步服务器上面的分支,开发分支也可以是你本地的分支,也可以是新创建的分支。例如:远程分支是dev,本地分支是dev,开发分支是dev_local。这样的好处是本地分支负责拉取服务器上的分支,合并开发分支,上传更新分支。类似于本地的一个中转站。有冲突的在本地合并处理。

git开发分支本地分支合并远程分支

假设:dev是远程分支(开发分支);dev_local 是开发分支

1、在本地分支上拉取最新数据:git pull origin dev;

2、创建本地开发分支:git checkout -b dev_local,然后进入dev_local开发分支中开发;

3、开发分支开发完后,我们提交到本地仓库:

git add .
git commit -m "最新开发信息"

4、切换到本地分支:git checkout dev

5、合并开发分支到本地分支:git merge dev_local

6、更新推送到远程分支:git push origin dev

7、删除本地开发分支(看开发情况,需要就删,不需要就不删除):git branch -d dev_local


git remote prune origin

git remote prune origin 通过翻译的中文意思是 git远程修剪原点。

我们在处理git分支时,我们会删除某个时间点开发的分支,有时是删除了本地开发的分支,有时是管理人员删除了远程的分支。在我们使用 git branch -a 查看所有分支,包括本地和远程的,特别是我们删除了本地的分支,而远程分支被管理员删除后,在查询分支列表时发现本地依然可以看到已经删除的分支。

我们可以通过 git remote show origin 来查看有关于origin的一些信息,包括分支是否tracking。

查看时会发现一些列表显示 stale (use ‘git remote prune’ to remove) 。提示你可以通过git remote prune 移除这个分支。(也就是说你可以刷新本地仓库与远程仓库的保持这些改动的同步)

过时的就是和本地不同步的分支,本地已过时的表示你需要移除这个分支了。

这个时候你需要调用 git remote prune origin 或者 git fetch --prune

同步远程的分支到本地,这样远程已经被删除的分支,本地就不会再看见了。


git log如何退出?如何退出git log或git commit模式

在使用git开发中,之前是一直修改了就直接提交,至于以前提交了什么内容不太关注。最近需要查看git提交记录时,使用git log查看记录。然而却不知道如何退出git log模式了!毕竟这个命令手动输入指令基本上不用。所以就尴尬了。

git log如何退出

退出git log模式很简单,只需要在git log模式下,按 q 键即可退出。如果不退出,在按完q键后回车即可。

在git log模式下查看日志时,如果提交的内容过多满屏看不下时,按回车(往下滚一行)、空格(往下滚一页)可以继续查看剩余内容。

git commit 的退出

当使用 git commit 而不使用 git commit -m 命令(没有带-m参数)时,会进入到vim编辑器中。vim编辑器有两种退出。

1 、保存并退出:

(1)按 Esc 键退出编辑模式,英文模式下输入 :wq ,然后回车(write and quit)。

(2)按 Esc 键退出编辑模式,大写英文模式下输入 ZZ ,然后回车。

2 、不保存退出:

按 Esc 键退出编辑模式,英文模式下输入 :q! ,然后回车。

按 Esc 键退出编辑模式,英文模式下输入 :qa! ,然后回车。


git强制pull线上代码合并到本地

git fetch 命令用于从远程获取代码库,再通过git reset 命令来覆盖本地代码。

Git强制pull 线上代码合并到本地
git fetch --all

git reset --hard origin/master

注意本地修改的代码,合并会替换本地修改的。

还是一种方式是直接删除本地的代码,然后再通过 git clone 的方式拷贝一个 Git 仓库到本地。


相关文章:

Git常用命令和QA(网摘)

主要内容 常用命令git checkout --orphan 分支与 git checkout -b 分支区别git如何创建一个新的空白分支branchgit开发分支本地分支合并远程分支git remote prune origingit log如何退出&#xff1f;如何退出git log或git commit模式git log如何退出git commit 的退出 git强制p…...

PHP AES 加密示例

PHP中实现AES加密的一个基本示例涉及到使用openssl_encrypt函数。这个函数允许你使用不同的加密算法&#xff0c;包括AES。下面是一个简单的示例&#xff0c;展示了如何使用AES加密一个字符串。 首先&#xff0c;你需要确定几个关键的参数&#xff1a; 数据&#xff08;Data&…...

第十九章:特殊工具与技术

第十九章&#xff1a;特殊工具与技术 对于很多程序员来说&#xff0c;他们很少会用到本章的介绍的内容。 一.控制内存分配 我们能够重载new和delete&#xff0c;但其实不是对new和delete的重载&#xff0c;只是对new和delete操作符后面的函数进行重载。 当我们使用一条new表…...

大数据深度学习卷积神经网络CNN:CNN结构、训练与优化一文全解

文章目录 大数据深度学习卷积神经网络CNN&#xff1a;CNN结构、训练与优化一文全解一、引言1.1 背景和重要性1.2 卷积神经网络概述 二、卷积神经网络层介绍2.1 卷积操作卷积核与特征映射卷积核大小多通道卷积 步长与填充步长填充 空洞卷积&#xff08;Dilated Convolution&…...

RabbitMQ(九)死信队列

目录 一、简介1.1 定义1.2 何时进入死信队列&#xff1f;1.3 死信消息的变化1.4 死信队列的应用场景1.5 死信消息的生命周期 二、代码实现2.1 死信队列的配置步骤2.2 配置类2.3 配置文件2.4 生产者2.5 业务消费者2.6 死信消费者2.7 测试结果 三、总结四、补充4.1 启动报错 ineq…...

KEI5许可证没到期,编译却出现Error: C9555E: Failed to check out a license.问题解决

一、编译出现如下报错 二、检查一下许可证 三、许可证在许可日期内&#xff0c;故应该不是许可证的问题 四、检查一下编译器&#xff0c;我用的是这个&#xff0c;这几个编译器的区别其实我不太明白&#xff0c;但我把问题解决是选的这个 五、找到编译器的路径&#xff0c;去复…...

南京观海微电子----时序图绘制工具

Wavedrom 是一款功能强大且简单易用的文本转图表工具&#xff0c;被广泛应用于生成时序图、波形图等交互式波形。其特点在于使用简单的文本语法&#xff0c;使得开发人员能够以可视化的方式表示数字信号和时间序列数据。Wavedrom 的优势在于其高度灵活性和可扩展性&#xff0c;…...

Gin CORS 跨域请求资源共享与中间件

Gin CORS 跨域请求资源共享与中间件 文章目录 Gin CORS 跨域请求资源共享与中间件一、同源策略1.1 什么是浏览器的同源策略&#xff1f;1.2 同源策略判依据1.3 跨域问题三种解决方案 二、CORS:跨域资源共享简介(后端技术)三 CORS基本流程1.CORS请求分类2.基本流程 四、CORS两种…...

TS:.d.ts 文件 和 declare 的作用

1 declare 做外部声明1.1 声明外部类型1.2 声明外部模块1.2.1 解决引入资源模块报错1.2.2 跳过对第三方库的类型检查 1.3 声明外部变量1.4 声明外部命名空间&#xff08;作用域&#xff09; 2 .d.ts 文件做外部声明3 declare global {} 在模块中做外部声明 先说一下我对 .d.ts文…...

JavaScript-jQuery2-笔记

1.获取元素文本、属性、内部结构、表单中的值 获取标签中所夹的文本内容&#xff1a;text() 获取标签的属性值&#xff1a;prop(属性名) 获取表单元素的内容&#xff1a;如 文本框中的内容 val() 获取元素的内部html结构&#xff1a;html() 2.筛选选择器 筛选选择器&#xff1…...

设计模式之多线程版本的if------Balking模式

系列文章目录 设计模式之避免共享的设计模式Immutability&#xff08;不变性&#xff09;模式 设计模式之并发特定场景下的设计模式 Two-phase Termination&#xff08;两阶段终止&#xff09;模式 设计模式之避免共享的设计模式Copy-on-Write模式 设计模式之避免共享的设计模…...

mybatis核心配置文件介绍

mybatis核心配置文件 1. properties配置介绍 properties标签&#xff1a;加载外部的资源配置文件 ​ 属性&#xff1a;resource 指定要引入的配置文件路径 ​ 在核心配置文件中&#xff0c;通过&#xff1a;${key}方式引入外部配置文件的数据 jdbc.peroperties 的文件内容…...

Linux完全卸载Anaconda3和MiniConda3

如何安装Anaconda3和MiniConda3请看这篇文章&#xff1a; 安装Anaconda3和MiniConda3_minianaconda3-CSDN博客文章浏览阅读474次。MiniConda3官方版是一款优秀的Python环境管理软件。MiniConda3最新版只包含conda及其依赖项如果您更愿意拥有conda以及超过720个开源软件包&…...

Apache Answer,最好的开源问答系统

Apache Answer是一款适合任何团队的问答平台软件。无论是社区论坛、帮助中心还是知识管理平台&#xff0c;你可以永远信赖 Answer。 目前该项目在github超过10K星&#xff0c;系统采用go语言开发&#xff0c;安装配置简单&#xff0c;界面清洁易用&#xff0c;且开源免费。项目…...

【C】内存分配

首先&#xff0c;回顾一下内存分配。所有程序都必须预留足够的内存来存储程序使用的数据。这些内存中有些是自动分配的&#xff1a; float x; int place[100]; 这些声明预留了足够的空间&#xff0c;还为内存提供了一个标识符&#xff0c;可以使用x或place识别数据。 1、mal…...

MySQL 从零开始:03 基本入门语句

文章目录 1、连接数据库1.1 命令提示符登陆1.2 MySQL 8.0 Command Line Client 登陆1.3 MySQL Workbench 登陆 2、基本语句2.1 查看所有库2.2 创建库2.3 删除库2.4 选择数据库2.5 查看表2.6 创建表2.7 删除表2.8 改表名2.9 清空表 在上一小节中介绍了 MySQL 数据库的安装&#…...

井盖异动传感器,守护脚下安全

随着城市化进程的加速&#xff0c;城市基础设施的安全问题日益受到关注。其中&#xff0c;井盖作为城市地下管道的重要入口&#xff0c;其安全问题不容忽视。然而&#xff0c;传统的井盖监控方式往往存在盲区&#xff0c;无法及时发现井盖的异常移动。为此&#xff0c;我们推出…...

复合机器人作为一种新型的智能制造装备高效、精准和灵活的生产方式

随着汽车制造业的快速发展&#xff0c;对于高效、精准和灵活的生产方式需求日益增强。复合机器人作为一种新型的智能制造装备&#xff0c;以其独特的优势在汽车制造中发挥着越来越重要的作用。因此&#xff0c;富唯智能顺应时代的发展趋势&#xff0c;研发出了ICR系列的复合机器…...

重置 Docker 中 Gitlab 的账号密码

1、首先进入Docker容器 docker exec -it gitlab bash 2、连接到 gitlab 的数据库 需要谨慎操作 gitlab-rails console -e production 等待加载完后会进入控制台 ------------------------------------------------------------------------------------------------------…...

任务类型划分

以下内容来自于ChatGPT内存密集型应用和IO密集型应用是两种不同类型的计算应用&#xff0c;它们在资源需求和性能特点上有所不同。 内存密集型应用&#xff08;Memory-Intensive Applications&#xff09;&#xff1a; 特点&#xff1a; 这类应用主要依赖大量的内存资源来执行任…...

docker搭建部署mysql并挂载指定目录

Docker是一种轻量级、可移植的容器化平台&#xff0c;可以简化应用程序的部署和管理。在本文中&#xff0c;我们将探讨如何使用Docker来搭建和部署MySQL数据库&#xff0c;并将数据和配置文件挂载到外部目录&#xff0c;以实现数据持久化和方便的配置管理。 1: 安装Docker 首…...

即将推出的 OpenWrt One/AP-24.XY:OpenWrt 和 Banana Pi 合作路由器板

OpenWrt开发人员正在与Banana Pi合作开发OpenWrt One/AP-24.XY路由器板。OpenWrt 是一个轻量级嵌入式 Linux 操作系统&#xff0c;支持近 1,800 个路由器和其他设备。然而&#xff0c;这将是第一块由 OpenWrt 直接开发的路由器板。 该主板将基于 MediaTek MT7981B (Filogic 82…...

【uniapp-小程序-分享图5/4】

utils.js //裁剪分享的图片为5:4 const makeCanvas (imgUrl) > {console.log("imgUrl",imgUrl);return new Promise((resolve, reject) > {// 获取图片信息,小程序下获取网络图片信息需先配置download域名白名单才能生效uni.getImageInfo({src: imgUrl,succe…...

【响应式编程】前置知识和相关技术的总结

前置知识 这些概念都与响应式编程密切相关。&#x1f98c; 1. 并发和多线程编程&#xff1a;响应式编程需要处理并发性&#xff0c;它允许多个操作独立地并行执行。这使得应用程序可以在不同的线程、进程或设备上处理多个事件。 2. 事件驱动编程&#xff1a;响应式编程是一种…...

K8S--安装MySQL8(单机)

原文网址&#xff1a;K8S--安装MySQL8&#xff08;单机&#xff09;-CSDN博客 简介 本文介绍K8S部署MySQL8&#xff08;单机&#xff09;的方法。 ----------------------------------------------------------------------------------------------- 分享Java真实高频面试题…...

CMake+QT+大漠插件的桌面应用开发

文章目录 CMakeQT大漠插件的桌面应用开发说明环境项目结构配置编译环境代码 CMakeQT大漠插件的桌面应用开发 说明 在CMake大漠插件的应用开发——处理dm.dll&#xff0c;免注册调用大漠插件中已经说明了如何免注册调用大漠插件&#xff0c;以及做了几个简单的功能调用&#x…...

OpenCV-24双边滤波

一、概念 双边滤波对于图像的边缘信息能够更好的保存。其原理为一个与空间距离相关的高斯函数与一个灰度距离相关的高斯函数相乘。 空间距离&#xff1a;指的是当前点与中心点的欧式距离。空间域的高斯函数及其数学形式为&#xff1a; 其中&#xff08;xi&#xff0c;yi&…...

AI智能分析网关V4:太阳能+4G智慧水库远程可视化智能监管方案

一、背景需求分析 由于水库位置分散的原因&#xff0c;水库视频监控建设在立杆、布线等方面都存在一定的难度&#xff0c;且需要人力、物力的前期投入和后期维护。目前水库的监管存在一定的问题&#xff0c;管理人员工作强度大但管理质量并不高&#xff0c;人为巡检无法实时发…...

第8章-第8节-Java中的文件类File的简单介绍

1、我们已经写过File的相关代码&#xff1a; BufferedReader bf new BufferedReader(new FileReader(new File("aa.txt"))); 2、其实FIle这个类自身也是非常强大的&#xff0c;封装了很多操作文件/目录的方法&#xff0c;今天我们就需要去详细的学习这个类&#x…...

CTF-PWN-沙箱逃脱-【seccomp和prtcl-2】

文章目录 沙箱逃脱prtcl题HITCON CTF 2017 Quals Impeccable Artifact libc 2.24flag文件对应prctl函数检查源码思路exp 沙箱逃脱prtcl题 HITCON CTF 2017 Quals Impeccable Artifact libc 2.24 flag文件 此时的flag文件在本文件夹建一个即可 此时的我设置的flag为 对应prc…...