Git使用教程、命令
Git使用教程、命令
基本配置
git的配置文件位置:
win: c:\users\<userName>\.gitconfig
linux: /home/<userName>/.gitconfig # 个人/etc/gitconfig # 系统全局# 修改git init时的默认分支为master, 但gitlab上创建仓库时默认分支是main,可以修改git init的默认参数,使其初始化为main1)、直接修改配置文件
如果已有[init]则修改其下配置,如果没有,则新增,其他配置项不变:...[init]defaultBranch = main # 修改默认初始化分支
2)、命令设置git config init.defaultBranch # 查看默认分支git config --global init.defaultBranch "main" # 设置默认初始化分支,缺省状态默认为“master”
配置项及命令:
git config --list # 查看全部配置
git config --global --list # 查看个人配置
git config --system --list # 查看系统配置
git config user.name # 查看用户名
git config user.email # 查看用户邮箱
git config init.defaultBranch # 查看默认分支# 系统级
git config --global user.name “用户名” # 设置用户名
git config --global user.email “邮箱” # 设置用户邮箱
git config --global init.defaultBranch "main" # 设置默认初始化分支,缺省状态默认为“master”# 用户级、项目级,存放于当前项目.git文件夹下的config文件中;当用户级和系统级同时存在时优先采用用户级;实际开发过程中极少使用用户级
git config user.name “用户名” # 设置用户名
git config user.email “邮箱” # 设置用户邮箱ssh-keygen # 生成ssh key# 删除配置
git config --global --unset init.defaultbranch 用户名和用户邮箱只用区分用户,可以时不存在的
基本命令
git add [<.>, <file>] # 提交追踪的文件到仓库,.表示当前目录下所有文件
git commit -m "message" # 为本次代码提交做备注说明,比如做了新增、更新了哪些功能等等
git push origin HEAD:refs/heads/master # 提交到指定分支 mastergit status # 检查状态
git reset # 撤销git add
git log # 查看提交/版本/历史记录
git diff [<file>] # 查看当前工作区的file与仓库中file的不同的地方,就是查看做了哪些修改git stash # 暂存当前状态
git stash list # 查看保存的工作场景
git stash pop # 恢复保存的内容,并把stash中的内容删了
分支控制
git branch -va # 查看分支列表
git branch # 查看当前分支
git checkout -b newBranch # 创建新分支newBranch并切换到该分支
git checkout dev1.0 # 切换dev分支
git push origin dev1.0 # 提交到dev分支
git branch -d dev # 删除本地分支
git branch -D dev # 强行删除本地分支
git push origin --delete branch # 删除远程分支及其追踪分支
git remote -v # 查看当前git远程地址
git branch -m master main # 重命名分支master为main
git pull origin <远程分支>:<本地分支> # 将远程指定分支 拉取到 指定本地分支上
git pull -f origin 远程分支名:本地分支名 # 强制拉取合并
git pull origin <远程分支> # 将远程指定分支 拉取到 本地当前分支上git remote remove <name> # 删除某个关联仓库
git push --set-upstream origin master # 设置默认push分支
推现有文件夹
git init
git remote add origin git@git.xjzh.tech:path/proj.git
git pull origin main # 先pull,将远端仓库的建项目时的初始化文件拉下来
git add .
git commit -m "Initial commit"
git push -u origin master
迁移git项目
git clone --mirror 项目原代码仓库地址 //将原仓库远程项目克隆到本地会生成一个 .git 文件
cd 生成的.git文件 //cd 进入(xxx.git)文件
git push --mirror 新项目代码仓库地址 //将本地克隆推送到新服务器
切换和合并分支:
合并分支前请确保当前工作目录的所有修改已提交到代码仓库,否则将可能导致某些修改被丢弃并不可找回例如:仓库有3个分支,分别为master、dev1.0、dev2.0,master为可对外应用的分支,dev1.0为提交给测试的分支,dev2.0为开发分支现在dev1.0分支的所有功能已经测试通过,我当前在dev2.0上又做了更新,现在要将dev1.0合并到dev2.0上,需要先将所有修改提交到dev2,否则当前工作区的修改将会倍舍弃,然后再进入到master分支,最后将dev1.0合并过来将dev1.0分支的修改合并到master分支git checkout master # 切换到master分支git merge dev1.0 # 将dev1.0合并过来git checkout dev2.0 # 返回到dev2.0分支,回到开发分支git cherry-pick id
有冲突时:git cherry-pick --abort // 放弃合并git cherry-pick --continue // 解决某些冲突后,继续查看下一个冲突
异常处理
(main|MERGING) # 合并、提交冲突
git reset --hard head # 重置当前的分支至上一次提交状态
如果时merge出现问题,就针对提示问题进行修复后提交# 冲突could not apply after resolving the conflicts........git checkout --theirs/git checkout --ours
git commit后,如何撤销commit
修改了本地的代码,然后使用:
1、git add file
2、git commit -m ‘提交信息’
执行commit后,还没push到远程仓库时,想要撤销这次提交本地仓库的commit,该怎么办?
解决方法:
第一种:执行 git reset --soft HEAD~ 可成功撤销最近一次commit到本地仓库的提交,所有撤销的代码修改进入暂存区。
第二种:如果想要连着add也撤销的话,git reset --hard HEAD~(删除工作空间的改动代码,慎用)。
命令详解:
HEAD~ 表示上一个版本,即上一次的commit,也可以写成HEAD~1
如果进行两次的commit,想要都撤回,可以使用HEAD~2
--soft 不删除工作空间的改动代码 ,撤销commit,不撤销git add file
--hard 删除工作空间的改动代码,撤销commit且撤销add(慎用)
另外一点,如果commit注释写错了,先要改一下注释,有其他方法也能实现,如:
git commit --amend
这时候会进入vim编辑器,修改完成你要的注释后保存即可。
git官网
git-scm.com
优势:
大部分操作在本地完成,无需联网完整性保证尽可能添加数据而不是删除或修改数据分支操作非常快捷流畅与linux命令全面兼容
工作区、暂存区、本地库
工作区:编辑、增删改查
暂存区:保存工作区提交上来的记录
本地库:将暂存区的历史记录保存到本地库持久化
工作区——git add ——暂存区——git commit——本地库
代码托管中心:维护远程库
内网:gitlab
外网:github、码云
本地库——push——远程库
================
持续更新~,有遇到新的问题以及解决方案时,我会及时记录到这里,这只是我工作经验总结分享的一部分,如果有理解不到位的地方欢迎猿友们指正,非喜勿喷!!!☺☺☺
相关文章:
Git使用教程、命令
Git使用教程、命令 基本配置 git的配置文件位置: win: c:\users\<userName>\.gitconfig linux: /home/<userName>/.gitconfig # 个人/etc/gitconfig # 系统全局# 修改git init时的默认分支为master&#x…...
《c++ primer笔记》第九章 顺序容器
前言 知识点很多,这里只记录遗忘的。从这章开始会对前面章节的内容进行一个扩充,如果以前的忘了读起来会有点吃力。总的来说,本章节难度不大。 文章目录一、概述二、容器库概览2.1容器定义和初始化2.2赋值三、顺序容器操作3.1添加元素3.2删除…...
QML动画(弹动和翻转效果)
Flickable(弹动) QML中提供了一个Flickable元素,可以将其子项设置在一个可以拖拽和弹动的界面上,使得子项目的视图可以滚动。在传统的用户界面中,可以使用标准控件(如滚动条和箭头按钮)滚动视图…...
GPS启动方式、定位速度、定位精度介绍
前面文章介绍了GPS定位基础知识 GPS定位知识介绍 (qq.com) 本文主要介绍GPS启动方式。 定位过程中最重要的辅助信息是时间、星历、位置。 根据辅助信息不同,...
深度学习零基础学习之路——第五章 个人数据集的制作
Python深度学习入门 第一章 Python深度学习入门之环境软件配置 第二章 Python深度学习入门之数据处理Dataset的使用 第三章 数据可视化TensorBoard和TochVision的使用 第四章 UNet-Family中Unet、Unet和Unet3的简介 第五章 个人数据集的制作 深度学习数据集的制作Python深度学…...
女神节 | PHP和Java算什么,女工程师才是最美最好的语言!
世界上第一个程序员是女性 第一个发现Bug的也是女性 在智领云有一群追求快乐和独立的女性工程师 她们多有魅力? 工位上她们专注于数据与代码 平日里郊游、瑜伽、插花、科学养娃一件不落 不仅用0和1编织数字世界 也在用心装点自己的生活 今天是国际劳动妇女节…...
【Python】装饰器
一、装饰器的作用 装饰器能够为已经存在的对象添加额外的功能。 二、什么是装饰器 装饰器本质是一个python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。 三、装饰器的应用场景 插入日志、性能…...
Spring事务及传播机制
概念 在MySQL中介绍过,当同一时间出现一起读写数据的情况,可能会导致最终的结果出错,因此可以使用事务来提高隔离级别 而Spring中也可以实现事务 手动添加事务 使用SpringBoot中的DataSourceTransactionManager对象可以获取事务࿰…...
43-Golang中的goroutine!!!
Golang中的goroutine进程和线程说明并发和并行并发并行Go协程和Go主线程案例小结goroutine的调度机制MPG模式基本介绍MPG模式运行的状态1MPG模式运行的状态2设置GOlang运行的CPU数不同 goroutine之间如何通讯使用全局变量加锁同步改进程序进程和线程说明 1.进程就是程序在操作…...
[深入理解SSD系列 闪存实战2.1.5] NAND FLASH基本读操作及原理_NAND FLASH Read Operation源码实现
前言 上面是我使用的NAND FLASH的硬件原理图,面对这些引脚,很难明白他们是什么含义, 下面先来个热身: 问1. 原理图上NAND FLASH只有数据线,怎么传输地址? 答1.在DATA0~DATA7上既传输数据,又传输地址 当ALE为高电平时传输的是地址, 问2. 从NAND FLASH芯片手册可知,要…...
pandas库中的read_csv函数读取数据时候的路径问题详解(ValueError: embedded null character)
read_csv()函数不仅是R语言中的一个读取csv文件的函数,也是pandas库中的一个函数。pandas是一个用于数据分析和处理的python库。它的read_csv函数可以读取csv文件里的数据,并将其转化为pandas里面的DataFrame对象。它由很多参数可以设置,例如…...
【量化交易笔记】4.移动平均值的实现
上一讲已经讲A股的数据下载到本地或保存数据库,我们可以随时使用。 移动平均MA(Moving Average) ,是用统计分析的方法,将一定时期内的证券价格(指数)加以平均,并把不同时间的平均值连接起来,形成…...
2023年3月份的野兔在线工具系统版本更新
这个是野兔在线工具系统中文版更新,这次更新的功能,和修改的问题还是比较多的,也修复系统部分功能,应该也是目前市面上在线工具比较多的一个系统了。系统名称:野兔在线工具系统系统语言:中文版系统源码&…...
科技成果赋智中小企业深度行 边界无限靖云甲ADR入选十大优秀案例
近日,国家工业信息安全发展研究中心、青岛市工业和信息化局、青岛市民营经济发展局、青岛市即墨区人民政府、青岛蓝谷管理局联合举办的科技成果赋智中小企业“深度行”活动(青岛站)成功举办,同步举行了赋智“深度行”活动…...
我们的理性何处安放
每天工作压力和各种人相处都让我们非常忙碌,我们上大学,努力工作,都是想获得更好的人生场景,素养,提升自身的认知,这样就是对我们大多数人生最负责任。如何让自己理性与人为善,并能被人温柔以待…...
RecyclerView的详细使用
首先就是了解ListView和RecyclerView的区别1.ListView相比RecycleView的优点a.ListView实现添加HeaderView和FooderView有直接的方法b.分割线可以直接设置c.ListView实现onItemClickListence和onItemLongClickListence有直接的方法2.RecyclerView相比ListView的优点a.封装了Vie…...
一、向量及其线性运算
🙌作者简介:数学与计算机科学学院出身、在职高校高等数学专任教师,分享学习经验、生活、 努力成为像代码一样有逻辑的人! 🌙个人主页:阿芒的主页 ⭐ 高等数学专栏介绍:本专栏系统地梳理高等数学…...
Spring Cloud/Spring Cloud Alibaba核心知识总结
Spring Cloud核心知识总结 springCloud是一个服务治理平台,若干个框架的集合,提供了全套的分布式系统的解决方案。包含:服务注册与发现、配置中心、服务网关、智能路由、负载均衡、断路器、监控跟踪、分布式消息、分布式事务等等。 SpringC…...
Locust框架从0到1入门
Locust介绍 Locust是使用Python语言编写实现的开源性能测试工具,可以用来测试Web应用程序、API、数据库等各种应用程序的性能,使用起来简洁、轻量、高效,并发机制基于gevent协程,可以实现单机模拟生成较高的并发压力。中文意为&a…...
C++:整数(short ,int,long,long long)表示范围
整形 C用short、int、long 、long long来表示整数的整形,同一整形也分为有符号(signed)和无符号(unsigned)两种。数据长度与操作系统和编译器的位数有关,其能够表示的范围也有所不同。接下来本文将用代码的…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
