Git学习 - 2023-06-08

news2024/10/5 10:45:28

2023暑期学习

  • Git基础
  • Git Fetch VS Git Pull
  • git pull --rebase VS git pull
  • 几种merge的方法
  • Fork VS Clone CS Branch
  • 如何把master的内容更新到分支上
  • 详尽介绍 git fetch VS git pull
  • 其他命令

Git基础

git branch branch-name
# 创建一个新的分支
=========================
git checkout branch-name
# 切换到新的分支
=========================
git log
# 查看所有的commits操作 以及显示对应的hash
git log --online --graph --all 
# 以图像的方式显示出所有commits的操作
=========================
git status 
# 显示工作目录和暂存区域的状态。 
# 它可以让您查看哪些变更已commit,哪些尚未commit,以及哪些文件未被Git 跟踪untracked。 
# 状态输出不显示有关已提交项目历史记录的任何信息
=========================

对于未跟踪的文件,通常分为两类。要么是刚刚添加到项目中但尚未提交的文件,要么是编译后的二进制文件,比如 .pyc、.obj、.exe 等等,或者是运行了什么模型产生的文件。

git show log-hash
# 显示提交的所有内容
=========================
git diff log-hash
# 显示更改的内容
=========================
git branch -a |grep layers
# 显示所有的 远程跟踪的分支和本地分支【包含layers的名字】
=========================
git reset log-hash  
# 回退到指定版本
=========================
git reset --hard origin/master 
# 将本地的状态回退到和远程的一样 
# throw away all my staged and unstaged changes, 
# forget everything on my current local branch 
# and make it exactly the same as origin/master
=========================

Git Fetch VS Git Pull

git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

git pull --rebase VS git pull

git pull --rebase -->
git pull就是先fetch,然后执行merge操作,如果加-rebase参数,就是使用git rebase代替git merge 。更新本地仓库

那 merge 和 rebase的区别在哪
请添加图片描述
可以看到merge操作会生成一个新的节点,之前提交分开显示。而rebase操作不会生成新的节点,是将两个分支融合成一个线性的操作。

通过上面可以看到,想要更好的提交树,使用rebase操作会更好一点,这样可以线性的看到每一次提交,并且没有增加提交节点。
在操作中。merge操作遇到冲突时候,当前merge不能继续下去。手动修改冲突内容后,add 修改,commit 就可以了
而rebase操作的话,会中断rebase,同时会提示去解决冲突。解决冲突后,将修改add后执行git rebase -continue继续操作。

===========

几种merge的方法

https://www.youtube.com/watch?v=CRlGDDprdOQ
https://morningspace.github.io/tech/git-merge-stories-1/

一开始, master有两个commits。m1 --> m2
然后你拉下来进行,并创建了一个feature branch进行修改,所以你的logs为 m1 --> m2 --> f1 --> f2
但此时 另一个开发者已经对matser进行修改 所以master的logs变成 m1 --> m2 --> m3
此时 你需要如何解决并merge呢。
有几种方法
(1)merge
(2)squash merge
(3)rebase

git rebase master 

就可以把master的东西自己的分支合并。【在这之前 需要checkout到master分支,把最新的远程master pull下来】

Fork VS Clone CS Branch

  • fork 只能对代码仓进行操作,且 fork 不属于 git 的命令,通常用于代码仓托管平台的一种“操作”
  • clone 是 git 的一种命令,它的作用是将文件从远程代码仓下载到本地,从而形成一个本地代码仓
  • branch 特征与 fork 很类似,fork 得到的是一个新的、自己的代码仓,而 branch 得到的是一个代码仓的一个新分支

如何把master的内容更新到分支上

https://blog.csdn.net/chen134225/article/details/100128593
当你在work on你的分支的时候,这个时候,很可能远程master的内容已经有更新了。这个时候,必须要把远程的内容更新到你的分支上,如果有conflicts 你需要手动来解决,再push上去。
下面是具体的步骤:
(1)切回master的分支

git checkout master

(2)将远程的master代码pull到本地

git pull 

(3)切换到你的分支下,比如是dev

git checkout dev

(4)合并master到dev分支

git merge master

如果在合并的过程中,提示某文件出现冲突了,手动修改一下这个文件,修改成自己想要内容;然后add和commit一下这个文件。

(5)将本地分支的代码push到远程仓库对应的分支上

git push

或者最简单的方式是直接使用

git pull --rebase

这个会把最新的origin master的code pull下来 跟你现在的分支进行合并。

详尽介绍 git fetch VS git pull

命令查看关联的主机名字

git remote -v
ouput:
origin  git@github.com:jquery/jquery.git (fetch)
origin  git@github.com:jquery/jquery.git (push)

这里关联的主机名字为origin。

git fetch命令通常用来查看其他人的进程,因为它取回的代码对你本地的开发代码没有影响。
默认情况下,git fetch取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名。

git fetch <远程主机名> <分支名>

比如,取回origin主机的master分支。

git fetch origin master

查看远程所有分支

git branch -r
output:
  origin/3_layers
  origin/ASKEXIT-145.bid_handler_timeout_exp
  origin/ASKEXIT-146.p1
  origin/ASKEXIT-146.p2
  origin/ASKEXIT-146.p3
  origin/AddAgencyEntity
  ...
  ...

补充
有时候分支过多,可以使用这个命令查找你的那个分支

 git branch -r|grep layer
 # 意思是查找所有包含layer的远程分支

查看所有的分支

git branch -a
output:
* new_3layers
  remotes/origin/2275_run_test_env_in_jenkins
  remotes/origin/3_layers
  remotes/origin/ASKEXIT-145.bid_handler_timeout_exp
  remotes/origin/ASKEXIT-146.p1
  remotes/origin/ASKEXIT-146.p2
  remotes/origin/ASKEXIT-146.p3

所以这里的关键点事
远程主机名 --> origin
远程分支名 --> 3_layers
本地分支名 --> new_3layers
当你要pull 拉下来的时候,使用命令

git pull <远程主机名> <远程分支名>:<本地分支名>

比如,取回origin主机的3_layers分支,与本地的new_3layers分支合并,需要写成下面这样

git pull origin 3_layers:new_3layers

如果远程分支是与当前分支合并,则冒号后面的部分可以省略
直接写成

git pull origin 3_layers

如果想要rebase的模式进行merge的话,则直接用

git pull --rebase origin 3_layers

如果存在追踪关系,则直接可以用 git pull
同理,git push也是
但为了理解,还是用全。

git push <远程主机名> <本地分支名>:<远程分支名>
git push origin new_3layers:3_layers

介绍Git的非常详尽的文章
https://www.ruanyifeng.com/blog/2014/06/git_remote.html

其他命令

将本地的main分支重置到远程版本库:

git reset --hard origin/main

清理任何未被追踪的变化

git clean -xdf

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

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

相关文章

Golang | Web开发之Gin框架快速入门基础实践

欢迎关注「全栈工程师修炼指南」公众号 点击 &#x1f447; 下方卡片 即可关注我哟! 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习&#xff01; 专注 企业运维实践、网络安全、系统运维、应用开发、物联网实战、全栈文章 等知识分享 “ 花开堪折直须折&#xf…

Learning C++ No.30 【lambda表达式实战】

引言&#xff1a; 北京时间&#xff1a;2023/6/9/9:13&#xff0c;今天8:15起床&#xff0c;可能是最近课非常少&#xff0c;导致写博客没什么压力&#xff0c;什么时间都能写&#xff0c;导致7点起不来&#xff0c;哈哈哈&#xff0c;习惯睡懒觉了&#xff0c;但是问题不大&a…

【二十七】springboot之通过threadLocal+参数解析器实现同session一样保存当前登录信息的功能

springboot篇章整体栏目&#xff1a; 【一】springboot整合swagger&#xff08;超详细 【二】springboot整合swagger&#xff08;自定义&#xff09;&#xff08;超详细&#xff09; 【三】springboot整合token&#xff08;超详细&#xff09; 【四】springboot整合mybatis…

绿豆影视系统5.1.8反编译版源码:PC+WAP+APP端【附搭建教程+软件】

简介&#xff1a; 绿豆影视系统5.1.8反编译版源码&#xff1a;PCWAPAPP端【附搭建教程软件】 优化内容 1.专题类目&#xff0c;在后台进行设置 2.短视频类目 &#xff0c;需要有信天翁id 3.优化首页栏目不显示问题 4.去除我的页面 不常用功能 5.修复自定义密码只能输入数字的…

二阳竟然是这样的~

今天周六&#xff0c;家人都出去玩了&#xff0c;把我自己扔家里了&#xff0c;因为我2阳了&#xff0c;出门都不带我玩了。 正好趁这个时间简单写下2阳的症状&#xff0c;和1阳有什么不一样。 先说结论&#xff1a; 我的亲身感受是2阳比1阳轻的多&#xff0c;没有浑身关节疼&a…

MySQL-索引详解(三)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a;小刘主页 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️树高千尺&#xff0c;落叶归根人生不易&…

第64篇:史上最严重的APT供应链攻击事件,借助Solarwinds攻击欧美的流程图梳理和分析(上篇)...

Part1 前言 大家好&#xff0c;我是ABC_123&#xff0c;公众号正式更名为”希潭实验室”&#xff0c;敬请关注。本期分享一个堪称史上影响最大、危害最大的供应链攻击APT案例——Solarwinds供应链攻击事件&#xff0c;SolarWinds的旗下有数万家客户公司&#xff0c;包括了”财…

h.264 h.265 协议基本概念记录

区分一些概念 MPEG-4 是一套用于音频、视频信息的压缩编码标准H.264&#xff0c;AVC&#xff0c;编码格式&#xff0c;是MPEG-4 的第10部分H.265&#xff0c;HEVC&#xff0c;编码格式&#xff0c;是MPEG-H的第2部分mp4&#xff0c;rmvb&#xff0c;mkv&#xff0c;avi是容器&…

【ChatGPT】数据科学 ChatGPT Cheat Sheet 书籍分享(阿里云盘下载)

封皮 以下为书中部分内容的机器翻译 我们的重要提示指南 1. 以 AI 角色的描述开始提示。 例如&#xff0c;“你是{x}”或“我希望你扮演{x}”。如果您不确定&#xff0c;请尝试“你是一个有帮助的助手”。 例如&#xff0c;您是 OpenAI 的数据科学家&#xff0c;您正在研究大型…

测量项目总结

和朋友合作开发一个测量机产品, 用于测量汽车零件形位公差, 客户的客户是电动汽车第一品牌, 我负责上位机开发, 历时2个月, 完成上百次的commit. 时间虽紧, 但代码质量上没有妥协, 软件层次划分合理, 后续考虑做成系列产品. 开发利器 感恩这个时代, 现在的软件开发开发体验真好…

git hook

hook hook 翻译为钩子&#xff0c;简单说就是监听某个事件&#xff08;操作&#xff09;&#xff0c;然后触发自定义逻辑 在 git 中可以监听 commit&#xff0c;push 等操作&#xff0c;在操作之前或之后触发对应的 hook&#xff0c;在 hook 中写自定义的逻辑&#xff0c;比如…

nginx扩展篇之nginx.conf 详细文档

nginx.conf 配置文件 基本说明 Nginx 的配置文件位置 文件位置 ​ 安装目录\conf\nginx.conf ​ 安装目录\nginx.conf 两个文件是一样的 多说一句&#xff1a;使用/usr/local/nginx/sbin/nginx 启动Nginx &#xff0c;默认用的是安装目录\nginx.conf 配置文件 作用&…

网络安全学术顶会——SP 2023 议题清单、摘要与总结(上)

总结 本文总结了196篇近期涉及网络安全领域的研究论文。主要可分为以下几类: 隐私保护,涉及到匿名认证、隐私保护机器学习等机器学习安全,主要研究对抗样本和隐蔽后门等问题浏览器和网络安全,涉及指纹识别、端到端加密、网站选择标志等嵌入式系统安全,主要针对 IOT 安全操作系统…

java并发编程:LinkedBlockingQueue详解

文章目录 简介源码分析属性构造函数入队方法put(E e)offer(E e)offer(E e, long timeout, TimeUnit unit) 出队方法take()poll()获取元素方法删除元素方法 问题总结 简介 在集合框架里&#xff0c;想必大家都用过ArrayList和LinkedList&#xff0c;也经常在面试中问到他们之间…

光线追踪RayTracing,基本原理,判断物体与光线相交

光线的三点假设&#xff1a; 光线按直线传播光线之间不会发生碰撞光线会经过一系列折射反射进入摄像机 可以从摄像机发出光线&#xff0c;推出可逆的光路 上图中&#xff0c;透明球在与相机直连的线条处&#xff0c;需要将折射和反射的着色点结果相加&#xff0c;如果有光源直…

Neuroimage | LMDA-Net第一作者亲自讲述其设计思想

近期&#xff0c; 天津大学精仪学院和医工院联合&#xff0c;在神经科学和神经成像顶刊 Neuroimage中发表题为《LMDA-Net: 一种具有通用性和可解释性的轻量级EEG解码网络》的学术论文, 为解决人工神经网络模型在EEG解码时面临的跨数据集泛化性差、预测波动性高和模型可解释性差…

【2023】Redis cluster集群模式搭建

目录 1.cluster集群介绍2.搭建cluster集群2.1.架构图2.2.搭建集群2.2.1.创建所需配置文件2.2.2.创建集群所需容器2.2.3.创建集群&#xff1a;master1节点连接其他节点2.2.4.配置从节点&#xff0c;完成三主三从 3.在cluster集群内读写数据 1.cluster集群介绍 Redis Cluster是R…

每个程序员都必须知道的8种通用数据结构

8种常用数据结构 数据结构是一种特殊的组织和存储数据的方式&#xff0c;可以使我们可以更高效地对存储的数据执行操作。数据结构在计算机科学和软件工程领域具有广泛而多样的用途。 几乎所有已开发的程序或软件系统都使用数据结构。此外&#xff0c;数据结构属于计算机科学和…

GitOps多环境部署问题及解决方案

大型组织应用GitOps难免会遇到在多环境中部署的问题&#xff0c;本文分析了应用环境分支策略会遇到到问题&#xff0c;介绍了应用文件夹策略解决这些问题的方案。原文&#xff1a;Stop Using Branches for Deploying to Different GitOps Environments[1], How to Model Your G…

STC8比较器功能案例介绍

STC8比较器功能案例介绍 &#x1f4cc;相关篇《STC8功能脚切换相关寄存器P_SW1和P_SW2以及MCLKOCR介绍》 &#x1f4cb;基于内部参考电压源&#xff0c;使用外部端口P3.7作为比较器正极输入源&#xff0c;比较器结果输出到P3.4 或者P4.1&#xff08;由P_SW2 中的CMPO_S 进行设定…