Git记录

news2024/11/18 16:33:52

Git日常命令

版本管理

git tag

  1. 删除本地tag
    git tag --delete v4.2.1
  2. 推送本地标签
    git push origin v4.2.1
  3. 创建本地标签
    git tag v4.2.1

分支管理

远程仓库地址管理

远程地址添加

意外着我可以将一个项目添加多个远程的仓库地址,只不过需要注意的一点就是git push后面需要追加origin之类的仓库地址。

# 其中翻译为中文就是远程添加origin的仓库地址,其链接为xxxx.git
git remote add origin xxxx.git

远程仓库地址删除

# 其中翻译为中文就是远程添加origin的仓库地址,其链接为xxxx.git
git remote add origin xxxx.git

创建本地分支

# 完整写法
git branch -M localBranchName
# 简写形式
git branch localBranchName

创建远程分支

注意如果想要创建远程分支,并不需要提前在本地创建分支,然后再使用如下命令

# 完整写法
git push origin --set-upstream remoteBranchName
# 简写形式
git push origin -u remoteBranchName

删除本地分支

# 完整写法
git branch --delete localBranchName
# 简写形式
git branch -d localBranchName

删除远程分支

# 完整写法
git push origin --delete remoteBranchName
# 简写形式
git push origin -d remoteBranchName

合并分支

现在主流的合并分支的方法有两种,一种是采用git merge方法进行合并,另外一种采用git rebase方法进行合并

git merge合并分支

从下面的步骤中其实我们是可以看到其中使用该命令进行合并分支的缺点,即当分支被删除之后,分支的提交信息也被删除了。最后仅仅留下一个git merge的commit合并信息在主分支上,然而这并没有什么实际的帮助。

  1. git merge subbranch # 合并需要进行合并的分支
    
  2. # 使用gitkraken软件可视化进行跟踪修改
    
  3. git add .&&git commit -m "description" 
    
  4. git push origin master # 将合并信息推送到master主线上
    

git rebase合并分支

其实,仔细看看下面的步骤不难发现,该方法是没有git commit无用的合并信息,同时将子开发成员的commit信息都保存在了主开发线上。但是缺点就是解决冲突随着脱离主分支的时间越久,修改冲突实际上是越复杂的。

  1. git rebase masterBranch # 将该分支合并到主分支上,即从该分支分离master的地点合并进入,同时分支的所有commit 信息都会保存到master分支上
    
  2. # 使用vscode的git插件合并冲突
    
  3. git add . #保存所有修改的文件
    
  4. git rebase --continue
    
  5. git push # 推送到主分支
    
    • 注意:rebase实际上影响的是当前分支和主分支

合并远程仓库作为自己的子仓库

添加远程仓库作为子模块

git submodule add https://github.com/alicevision/AliceVision.git src/dependencies/AliceVision

仓库文件操作

远程分支下的文件操作

删除远程分支下的指定文件夹

仅仅删除远程分支文件,不删除本地文件

git rm -r --cached directoryname
git commit -m "delete remote directory"
git push -u origin current_branch_name

删除远程文件

git rm --cached filename
git commit -m "delete remote file"
git push -u origin current_branch_name

本地分支下的文件操作

同时删除本地分支和远程分支下的指定文件夹

git rm -r directory
git commit -m "delete local and remote directory"
git push -u origin current_branch_name

同时删除本地分支和远程分支下的指定文件

git rm -filename
git commit -m "delete remote file and local file"
git push -u origin current_branch_name

工作流切换

​ 有时候你会有这么一个需求,就是当你在某一个分支上进行操作的时候,你突然就想切换到另外一个分支执行一些工作,但是很厌烦的一点就是无法正常切换,系统总是要求你进行commit到本地,这样有一个缺点就是你会多很多无用的-m信息描述,git stash命令就可以很好的解决上述问题。

保存当前修改版本

git stash push # 推荐使用push,会有文件追踪之类的高级信息
git stash [save] # 其中save为可选参数

应用某个版本的修改

git stash apply stash@{1} # 应用某个stash存储版本(不删除)
git stash pop stash@{2} # 应用某个stash存储版本(删除)

显示所有的存储版本

git stash list

删除存储版本

git stash clear # 删除所有的存储版本
git stash drop stash@{0} # 删除指定版本

挂VPN且在网速慢的情况下出错

server certificate verification failed.CAfile:/etc/ssl/certs/ca-certificates.crtCRLfile:none

在执行git clone之前,在终端输入

  • export GIT_SSL_NO_VERIFY=1

error:RPC failed

解决办法:git config http.postBuffer 524288000

低版本git导致错误

GnuTLS recv error (-9): A TLS packet with unexpected length was received

vpn环境下出现上述错误:

解决办法:

  1. ifconfig eth0 mtu 1400
  2. GIT_CURL_VERBOSE=1
  3. apt-get install stunnel4

合并远程仓库与本地仓库

note: 当前文件夹下删除了以往仓库的.git文件夹

  • git init->初始化本地仓库

  • git remote add origin https://github.com/netease-im/NIM_Duilib_Framework.git

  • git branch -M master -> 创建本地分支

  • git branch --set-upstream-to=origin/master master -> 合并远程的分支与本地分支

    image-20220117175036824

  • git pull --allow-unrelated-histories

  • 解决冲突

  • git push -> 提交修改,成功合并远程仓库和本地仓库

添加外部仓库作为子仓库

​ 每一个submodule都会进行更新,本地的仓库如果不强行进行更新submodule,该仓库依赖的子仓库始终会保持一个版本,即刚开始依赖的版本,并且主仓库会为每一个submodule创建一个隐藏的文件用于记录当前子仓库的版本信息。

image-20220216090809967

  • git submodule -b Boost https://github.com/Lincong-pro/AliceVision.git dependencies/alicevision

  • git rm --cached .git/modules/dependencies/alicevision(移除缓存之后.git中内容也会随之移除)

  • rm -rf dependencies/alicevision

  • 记得移除submodule中的内容

  • git rm --cached submodule_name # 再次移除缓存
    
  • git clone https://github.com/Lincong-pro/AliceVision.git --recursive

    • git submodule update -init (只更新这一级的submodule)
    • git submodule update --init --recursive (递归的方式拉取submodule)
    • git submodule update --init --force --remote (子模块更新,强行进行拉取)

配置gitee和github免密码登陆

  • 先取消之前的全局配置

  • 配置github和gitee的免密码登陆

  • 此时通过git就可以免密码下载私人仓库

  • 上传代码还需要配置全局默认仓库,然后有时候可能还需要配置本地仓库

    git config --local user.name "Lincong-pro"
    git config --local user.email "lincong_pro@163.com"
    

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

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

相关文章

mysql数据表操作

1、alter 修改表名 : alter table 旧表名 rename as 新表名添加字段 : alter table 表名 add字段名 列属性[属性]修改字段 : alter table 表名 modify 字段名 列类型[属性]alter table 表名 change 旧字段名 新字段名 列属性[属性]删除字段 : alter table 表名 drop 字段名2、…

多目标柔性生产作业车间——反世代距离(IGD)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录反世代距离IGD概念收敛性能以及分布性能举例计算反世代距离IGD概念 反世代距离是一个综合性能的评价指标,主要是应用至求解多目标问题中,评价…

Java企业级开发学习笔记(2.3)利用MyBatis实现关联查询

该文章主要为完成实训任务,详细实现过程及结果见【http://t.csdn.cn/ZVEZd】 文章目录一、创建数据库表1.1 创建教师表1.2 创建班级表1.3 创建学生表二、创建于数据库表对应的实体类2.1 创建教师实体类2.2 创建学生实体类2.3 创建班级实体类三、创建班级映射器配置文…

Leetcode394 字符串解码 递归和非递归

字符串解码 https://leetcode.cn/problems/decode-string/ 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效…

你搞清楚了吗?| GET请求方式的长度限制到底是多少?

目录 📍 浏览器限制 📍 服务器限制 在大多数人的一贯认识中,一直认为get请求方式有2048B的长度限制,其实这种说法是有失偏颇的,甚至可以说是错误的。 这个问题一直以来似乎是被N多人误解,其实Http Get方…

2.3-3单链表的查找

按位查找: so easy (1)边界情况 i0 没有循环,直接返回头节点 (2)如果i8 当不合法,返回NULL. (3)普通情况i3;(平均时间复杂度为O(n)) 进行封装:避免重复,更加简洁更…

CRYSTALS-Dilithium

文章目录简介1和2版本区别2和3的区别1.介绍1.1基本方法概述密钥生成算法签名过程验证1.2Dilithium实现注意事项安全性。基础操作环操作模约简。元素的大小NTT域表示2.3 HashingsignatureGenζ ← {0,1}256\{{0, 1\}}^{256}{0,1}256(ρ, ρ, K) ∈ {0,1}256\{{0, 1\}}^{256}{0,1…

【springBoot篇2】springBoot日志篇

目录 一、日志有什么作用 作用1:快速定位问题的所在之处(最主要) 作用2:记录用户的登录日志 作用3:记录系统的操作日志 作用4:记录方法的执行时间 二、日志怎样使用 ①先得到日志对象(slf4j的Logger对象) ​​​编辑 ②根…

Python 无监督学习实用指南:1~5

原文:Hands-on unsupervised learning with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关…

docker运行服务端性能监控系统Prometheus和数据分析系统Grafana

文章目录一、Prometheus的安装和运行1、使用docker拉取镜像2、创建prometheus.yml文件3、启动容器4、查看启动是否成功5、记录安装过程中出现的错误二、Grafana的安装和运行1、使用docker拉取镜像2、创建grafana3、运行grafana4、查看grafana运行日志5、登录grafana一、Prometh…

学会了selenium 模拟鼠标操作,你就可以偷懒点点点了

目录:导读 前言 01.ActionChains 类常用方法 02.ActionChains 类所有方法 03.ActionChains 使用步骤 04.实战 05.总结 前言 我们在做 Web 自动化的时候,有时候页面的元素不需要我们点击,值需要把鼠标移动上去就能展示各种信息。 这个…

云服务器开启声音的办法

云服务器开启声音的办法 淘小云 云计算从业者,架构师 ​关注 云服务器没有声音是一件很烦恼的事情,那么今天小编给大家分享一下服务器开启声音的方法! 首先您需要先拥有一台windows系统的云服务器,小编这里以腾讯云服务器为例…

( “树” 之 DFS) 687. 最长同值路径 ——【Leetcode每日一题】

687. 最长同值路径 给定一个二叉树的 root ,返回 最长的路径的长度 ,这个路径中的 每个节点具有相同值 。 这条路径可以经过也可以不经过根节点。 两个节点之间的路径长度 由它们之间的边数表示。 示例 1: 输入:root [5,4,5,1,1,5] 输出&…

Loki采集Mysql errorlog,你值得拥有的错误日志聚合系统

说到分布式日志存储系统,大家肯定对ELK、EFK这些工具并不陌生。可是它们都基于Elasticsearch存储,搭建复杂,耗资源,上手难。所以,个人非常推崇Grafana Labs开源的Loki 轻量级日志聚合分析系统 Loki使用标签来作为索引…

java maven学习

我本身是个前端,目前Java都算是自学,为了直接能做Java服务端开发,我其实很多基础都没学,直接上项目做东西。现在来补充常用maven。避免以后出现低级错误。 一、依赖拉不下来解决步骤 1. 检查网络(最好检查&#xff09…

Flutter(六)可滚动组件

目录1.可滚动组件简介Sliver布局模型ScrollableViewportSliver可滚动组件的通用配置2.SingleChildScrollView3.ListView默认构造函数ListView.builderListView.separated固定高度列表ListView 原理无限加载列表,分页添加Header4.滚动监听及控制ScrollController滚动…

SpringCloud-Alibaba学习笔记01——Nacos介绍以及注册中心的演变和Nacos核心功能

文章参考自图灵大佬课程:https://www.bilibili.com/video/BV1fe4y1b7ha?p1&vd_source5f425e0074a7f92921f53ab87712357b 1.什么是Nacos 官方:一个更易于构建云原生应用的动态服务发现(Nacos Discovery )、服务配置(Nacos Config)和服务管理平台。 …

threejs 模型 世界坐标系和设备坐标系

前言 开发中遇到需求需要点击屏幕位置处,生成一个类似圆形弹窗面板,这个交互需要进行的坐标转换为模型坐标(局部坐标)>场景坐标(世界坐标)>标准设备坐标>屏幕空间坐标,也就是一个将3D…

开启分片支持需要如何去做?

开启分片支持 如果您计划使您的Javashop系统数据分片,请参考本文档进行相应的配置。 一、做好分片策略 在开始之前,您应该根据自己的业务情况准备好分片策略,包括: 1、要用几个数据库来分片 2、相应的表要分几张表 在本例&#x…

大数据 | 实验一:大数据系统基本实验 | MapReduce 初级编程

文章目录📚实验目的📚实验平台📚实验内容🐇编程实现文件的合并和去重🐇编程实现对输入文件的排序🐇对指定的表格进行信息挖掘📚实验目的 1)通过实验掌握基本的 MapReduce 编程方法。…