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 仓库到本地。


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

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

相关文章

leetcode-2645 构造有效字符串的最小插入数

题目链接 2645. 构造有效字符串的最少插入数 - 力扣&#xff08;LeetCode&#xff09; 解题思路 动态规划 1、定义状态d[i]为将前i个字符&#xff08;为了方便编码&#xff0c;下标从1开始&#xff09;拼凑成若干个abc所需要的最小插入数。那么初始状态d[0]0&#xff0c;最终…

Programming Abstractions in C阅读笔记:p242-p245

《Programming Abstractions in C》学习第67天&#xff0c;p242-p245总结&#xff0c;总计4页。 一、技术总结 6.2小结主要讲回溯算法及递归算法在迷宫求解中应用&#xff0c;当然&#xff0c;理解然后用代码实现出来还是有些难度的。不过&#xff0c;这并不影响我们进行下一…

关于目标检测任务中,XML(voc格式)标注文件的可视化

1. 前言 最近在弄关于目标检测的任务&#xff0c;因为检测的图片和标签是分开的&#xff0c;可视化效果不明显&#xff0c;也不知道随便下载的数据集&#xff0c;标注信息对不对。网上看了好多代码&#xff0c;代码风格和本人平时不同&#xff0c;看起来麻烦&#xff0c;也不知…

flutter 通过打包参数区分来 打内网 外网包

内网 # 打包内网环境flutter build apk --dart-defineis_intranettrue --dart-defineis_managerAppfalse 外网 # 打包内网环境flutter build apk --dart-defineis_intranettrue --dart-defineis_managerAppfalse env.dart // main.dart class EnvironmentConfig {// 是否…

RHCE9学习指南 第19章 网络时间服务器

19.1 时间同步的必要性 对于一些服务来说对时间要求非常严格&#xff0c;例如&#xff0c;图19-1所示由三台服务器搭建的ceph集群。 图19-1 三台机器搭建的集群对时间要求比较高 这三台服务器的时间必须要保持一样&#xff0c;如果不一样&#xff0c;就会显示报警信息。那么…

Vue基础-搭建Vue运行环境

这篇文章介绍了在Vue.js项目中进行开发环境搭建的关键步骤。包括node.js安装和配置、安装Vue及Vue CLI工具、安装webpack模板、安装vue-router、创建Vue项目等步骤。这篇文章为读者提供了清晰的指南&#xff0c;帮助他们快速搭建Vue.js开发环境&#xff0c;为后续的项目开发奠定…

已设定选项 ‘readonly‘ (请加 ! 强制执行)

这是vim编辑器报的错误&#xff0c;相信很多人都遇到过。在使用vi编辑一个需要sudo权限的文件后&#xff0c;保存的时候出现这样的错误。这个时候很多人做的事情可能就是不保存退出&#xff08;敲命令:q!&#xff09;&#xff0c;然后再以sudo vi打开文件重新编辑一次。如果恰巧…

Django的数据库模型的CharField字段的max_length参数与中文字符数的关系探索(参数max_length的单位是字符个数还是字节数?)

01-清理干净之前的数据库迁移信息 02-根据setting.py中的信息删除掉之前建立的数据库 03-删除之后重新创建数据库 04-models.py中创建数据库模型 from django.db import modelsclass User(models.Model):username models.CharField(max_length4)email models.EmailField(uni…

【makedown自带语法技巧】

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

YOLOv8优化策略:轻量化改进 | 华为Ghostnet,超越谷歌MobileNet | CVPR2020

🚀🚀🚀本文改进:Ghost bottleneck为堆叠Ghost模块 ,与YOLOV8建立轻量C2f_GhostBottleneck 🚀🚀🚀YOLOv8改进专栏:http://t.csdnimg.cn/hGhVK 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1.Ghostnet介绍 论文: https://arxiv.org/pdf/1911.11907.…

python数据结构堆栈

堆 堆是一种树形结构&#xff1a;满足两个主要性质 堆是一种完全二叉树&#xff1a;堆中所有层级除了最后一层都是完全填满的&#xff0c;且最后一层的节点都是向左排列堆中的任意节点都不大于&#xff08;或不小于&#xff09;其子节点的值&#xff0c;这也是堆的属性 impo…

Java Stream通过findFirst()查找满足条件的一条数据

Stream的findFirst方法在此流中查找第一个元素作为Optional。 如果流中没有元素&#xff0c;findFirst返回空的Optional。 如果流没有顺序&#xff0c;那么findFirst可以选择任何元素。 如果findFirst选择的元素为null&#xff0c;它将抛出NullPointerException。 在javado…

【C++】C++11中的常见语法(上)

C11 一、C11简介二、统一的列表初始化1.&#xff5b;&#xff5d;初始化2. std::initializer_list 三、声明1. auto2. decltype3. nullptr 四、右值引用和移动语义1. 左值引用和右值引用2. 左值引用与右值引用比较3. 右值引用使用场景和意义4. 右值引用引用左值及其一些更深入的…

yolov5_master的下载、环境搭建、数据处理及训练全过程

本文借用了以下微博的文章&#xff0c;觉得写的比较全&#xff0c;所以照抄了过来&#xff0c;并且搭建了一遍可以正常训练&#xff0c;在这里作为笔记以后用的时候方便找&#xff0c;这个yolov5_master的使用可以将pth模型文件转换为onnx文件&#xff0c;进而转换为rknn文件&a…

Mybatis缓存相关面试题有多卷

MyBatis 是一个流行的持久层框架&#xff0c;它提供了一个灵活且高效的方式来访问关系型数据库。其中一个重要的特性是缓存机制&#xff0c;它可以帮助提升数据库查询的性能。 MyBatis 的缓存分为一级缓存和二级缓存两种&#xff1a; 一级缓存&#xff1a;默认情况下&#xff0…

揭秘 Gossip 协议:节点之间的悄悄话

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 揭秘 Gossip 协议&#xff1a;节点之间的悄悄话 前言Gossip协议简介Gossip 协议的工作原理Gossip 协议的优势Gossip协议的实际应用 前言 在分布式系统中&#xff0c;节点之间的信息传递如同社交中的悄…

供应链+低代码,实现数字化【共赢链】转型新策略

在深入探讨之前&#xff0c;让我们首先明确供应链的基本定义。供应链可以被理解为一个由采购、生产、物流配送等环节组成的网状系统&#xff0c;它始于原材料的采购&#xff0c;经过生产加工&#xff0c;最终通过分销和零售环节到达消费者手中。 而数字化供应链&#xff0c;则是…

Redis 持久化有几种方式?

Redis 持久化有几种方式&#xff1f; 在 Redis 中&#xff0c;有两种主要的持久化方式&#xff0c;分别是快照&#xff08;Snapshot&#xff09;和追加文件&#xff08;Append-Only File&#xff0c;AOF&#xff09;。 1. 快照&#xff08;Snapshot&#xff09;持久化&#x…

235个国家-数字经济发展相关23个指标(2000-2022年)

本文涉及235个国家的数字经济发展的23个相关指标数据&#xff0c;为我们提供了一个全面的视角&#xff0c;用以分析和比较全球范围内数字经济的发展状况。这些国家&#xff0c;年份&#xff0c;移动网络覆盖率&#xff0c;固定电话普及率&#xff0c;固定宽带普及率等指标。这些…

学习记录-自动驾驶与机器人中的SLAM技术

以下所有内容均为高翔大神所注的《自动驾驶与机器人中的SLAM技术》中的内容 融合导航 1. EKF和优化的关系 2. 组合导航eskf中的预测部分&#xff0c;主要是F矩阵的构建 template <typename S> bool ESKF<S>::Predict(const IMU& imu) {assert(imu.timestamp…