Git:Git中的远程操作和标签管理--分布式版本控制系统

2023-11-18

本篇主要总结关于Git中远程操作的相关事项:

理解分布式版本控制系统

在进行远程操作前,首先要理解什么是分布式版本控制系统

理解这个问题时要思考这样的问题:我之前进行的addcommit的操作都是在我本地进行的,如果我的电脑坏了怎么办

因此,就出现了一个解决方案,让多台计算机都把这个仓库进行备份,并且只要有任何一个计算机的仓库下提供了一个改变,都会把数据推送给其他人的电脑,其他人就可以从仓库中看到某个人的更新记录
这个操作是有历史进步意义的,但这个方法依旧不好,计算机并不稳定,如果还没有备份到多台机器上就已经全部损失了数据该怎么办?

因此,就出现了现在主流的管理方案,有一个中央服务器,这个中央服务器是24h进行运转,并且十分稳定,有谁需要进行操作就可以在仓库中进行相关的操作,这样既能保证开发效率的前提下,还能使得仓库变得十分的稳定,而这个中央服务器,就是所谓的GithubGitee

在这里插入图片描述

克隆仓库

在Gitee中可以获取到克隆的链接,直接使用命令:

# xxxx表示克隆的地址
git clone xxxx

远程推送

本地已经clone成功了远程仓库后,就可以向仓库中提交内容,例如新增一个file.txt文件

在提交的时候需要注意的是,前面有进行过全局的name和email的配置,这两个信息是要和gitee上的用户名和邮箱是需要一致的,否则会导致推送出错

当使用完addcommit的操作后,就可以把仓库中的信息推送到远程仓库了:

git push [远程主机名] [本地分支名]:[远程分支名]

需要注意的是,如果本地分支名和远程分支名相同,那么冒号和远程分支名是可以省略的

拉取远程仓库

如果远程仓库的更新版本程度比本地的更新版本程度要新,那么就需要用到pull指令,用处是拉取远程仓库到本地仓库

git pull [远程主机名] [本地分支名]:[远程分支名]

如果本地分支名和远程分支名相同,那么冒号和远程分支名是可以省略的

配置Git

在日常使用中,在程序经过编译等多项结果后,会产生一系列附属的临时文件或动静态库等等,那么如何保证这些文件不被提交?

因此就引入了一个工具叫做.gitignore

具体的用法是,在文件中可以写入一些东西:

* .so
* .ddl

上面的规则写法就代表着,如果要推送的内容中含有.so.ddl的文件,就把这些文件忽略掉不予理睬,只进行其他文件的推送

那如果有一个场景确实需要推送一个叫做a.so的文件?

可以在.gitignore中添加:

! a.so

用感叹号的这种写法就表示,对于有这样名称的文件就进行提交,这样就可以进行提交了

# 常用的.gitignore
# Build and Release Folders
bin-debug/
bin-release/
[Oo]bj/
[Bb]in/

# Other files and folders
.settings/

# Executables
*.swf
*.air
*.ipa
*.apk

#过滤掉不想要文件和文件夹
*.exe
*.sln
*.vcxproj
*.filters
*.user
*.suo
*.db
*.ipch
Debug/
.vs
Release/

在这里插入图片描述

标签管理

如何理解标签?标签的意义是什么?

标签可以理解为,是对于某次commit后的一个标识,相当于起了一个别名,例如,在项目中发布一些版本的时候,可以对于最后一次的commit进行命名,作为一个特殊意义

其实标签的意义远不止于此,相比起晦涩难懂的commit id,标签就可以很好的解决这个问题,一般来说自定义的标签都是有意义的,可以帮助人进行记忆的名字,因此使用标签在帮助我们回退某个版本的时候有很大的帮助

创建标签

 git tag [name]

通过上述的命令就可以实现打标签的一个效果

 git tag

这个命令可以用来查看所有的标签

对于默认的标签是打在最后提交的commit上的,但是对于指定的commit版本也有对应的使用方法,那就是找到那次commit id,再打到那个id就可以了

git tag v0.9 [commit id]

查看标签的信息

 git show [tagname]

除此之外,Git 还提供可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:

git tag -a [name] -m "XXX" [commit_id]

那么下面进行关于Git的一些实战操作,借助这些实战操作来更好的理解Git在多人开发中的用途

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git:Git中的远程操作和标签管理--分布式版本控制系统 的相关文章

  • 有没有办法列出Git中未修改的文件?

    我从另一个来源以 tarball 的形式获取了一些更改 我想知道哪些文件没有更改 目标是 Git 克隆 因此可以轻松查看新增内容和更改内容 有人知道如何获取未更改内容的列表 不包括未跟踪的内容 吗 编辑 换句话说 我希望利用 Git 来查找
  • 使用 Git 的 Spring Cloud 配置服务器 - 无法克隆或签出存储库连接超时

    我正在使用 GIT 在 Spring Cloud Config Server 上进行 POC Spring Boot 1 5 3 RELEASE 爪哇1 8 弹簧工具套件https github com kishornpatil https
  • 从 git 中删除历史记录 - git 命令失败

    我正在尝试从 Git 历史记录中清除项目 bin 目录 我已经将 bin 添加到 gitignore 并运行 git rm cached r bin成功地 现在我尝试使用 GitHub 帮助页面中推荐的命令来清除历史记录 git filte
  • Git:如何使外部存储库和嵌入式存储库作为通用/独立存储库工作?

    我有一个大项目 比方说A repo 其中有一个子文件夹来自B repo 当我提交时 我会遇到如下警告A repo warning adding embedded git repository extractor annotator serv
  • Git 命令显示我对给定远程的权限

    同事可以从远程存储库获取数据 但不能推送到远程存储库 我怀疑他对遥控器只有读权限而没有写权限 我可以通过多种方法来检查这一点 但我想不出他可以在 git 中使用的方法 是否有 git 命令可以显示给定远程存储库的权限 No Git 本身不处
  • Windows 版 GitKraken 中的文件名太长

    正如建议的Q22575737 https stackoverflow com a 22575737 6623589 我已经更新了我的注册表并设置了git config system core longpaths true在处理长路径时 问题
  • 有没有办法缓存 https 凭据以推送提交?

    我最近转而将我的存储库同步到 GitHub 上的 https 由于防火墙问题 并且每次都要求输入密码 有没有办法缓存凭据 而不是每次都进行身份验证git push 自 Git 1 7 9 2012 年发布 以来 Git 中有一个巧妙的机制可
  • 如何在 Windows 上向 git 存储库添加符号链接?

    我使用 GitHub 的电子环境编译 OS X 的二进制文件 并希望将输出添加到 git 存储库 我试过 git add error readlink sulu app Contents Frameworks Electron Framew
  • git subtree pull -P 不管 总是合并冲突

    问题 即使我没有进行任何更改 每次尝试拉入子树时 我都会遇到合并冲突 我在做什么 In 子树仓库 Make some changes git commit am Changes made git push origin master In
  • git 可以与 Xcode 集成吗?

    有没有办法将 git 存储库与 Xcode 内置的 SCM 功能一起使用 Xcode 4 原生支持 git WWDC 2010 上的开发者工具国情咨文演讲 在这里了解更多 Xcode 4 中的新增功能 http developer appl
  • 运行“git apply”时出错

    当我尝试时 您能否告诉我如何解决 补丁不适用 错误 git 应用补丁 git apply 0001 my patch error patch failed test xml 114 error text xml patch does not
  • refname 不明确且拉取失败

    我运行了以下命令 因为我想将生产分支移回而不必先签出 git branch f production HEAD 1 现在 当我检查生产时 我收到以下警告 warning refname production is ambiguous 然后我
  • 分支明显不同,但提交历史是相同的

    git status告诉我我的分支和我在另一个存储库上开始的分支已经分歧 On branch master Your branch and origin master have diverged and have 13 and 13 dif
  • git pull,忽略深度,如何不拉取整个历史记录?

    我们有一个巨大的多 GB git 存储库 主要是二进制对象 克隆需要几天时间 实际的主分支 没有历史记录 只有大约 20MB 所以我想 深度为 1 的 git 克隆就是解决办法 然而 现在我需要将某人的更新拉到主服务器 我们没有分支 当我拉
  • 在 github 上的 fork 中跟踪上游的最佳实践

    摘要 对于要维护一组本地更改的上游存储库 处理长期运行跟踪的最佳实践是什么 我想让 github 上的 fork 与上游保持同步 但仍然允许清晰跟踪 fork 特有的更改 对于本次讨论 假设upstream指向主项目存储库并且origin指
  • 为什么我无法创建/签出该分支?

    我正在尝试创建本地 Git 分支 但它不起作用 以下是我正在使用的命令 tablet edit11 git checkout b edit 11 Switched to a new branch edit 11 tablet edit11
  • Composer 用于下载私有 GitHub 存储库

    我无法使用 Composer 下载 github 私人存储库 php composer phar update 我收到以下错误 The https api github com repos company private1 https ap
  • 我可以直接从我的谷歌云端硬盘在线推送/拉取吗?

    有一些方法可以通过谷歌驱动器同步 Windows 应用程序将我的本地 git 存储库同步到我的谷歌驱动器 但我想知道我是否可以完全绕过它的需要 Fro eg git remote add origin https drive google
  • 在 Windows 7 上的 Sourcetree 中比较 Word docx 文件

    我一直在尝试获取在 Windows 7 上的 Sourcetree 中工作的 Word docx 文件的文本差异 我已按照此处的说明进行操作将 Microsoft Word 与 git 结合使用 http blog martinfenner
  • 在 Azure DevOps 项目之间移动存储库时保留拉取请求

    我在同一帐户内有两个 Azure DevOps 项目 我想将存储库从一个项目移动到另一个项目 这一页探索如何在具有完全保真历史记录的团队项目之间移动 git 存储库 https learn microsoft com en us azure

随机推荐

  • 2022-渗透测试-OWASP TOP10详细讲解

    1 sql注入 原理 SQL 注入就是指 web 应用程序对用户输入的数据合法性没有过滤或者是判断 前端传入的参数是攻击者可以控制 并且参数带入数据库的查询 攻击者可以通过构造恶意的 sql 语句来实现对数据库的任意操作 分类 1 报错注入
  • 发小要开商场,让我给写个商场管理系统。报酬就去唱个歌?

    前言 昨天我发小喊我去唱歌 我心想还有这种好事 这铁公鸡平常一毛不拔的 居然还请我唱有陪唱的 那这咱们就拒绝不了啊 刀山火海这都得上啊 话说今天陪唱的小姐姐长的确实还不错 唱了两个小时 发小做我旁边让我帮个忙 我就知道他是无事献殷勤 那没办
  • Java-集合(List接口及其常用的实现子类)

    List接口基本介绍 1 List集合类中元素是有序的 即添加顺序和取出顺序一致 且可以重复 2 List集合类中的每个元素都有其对应的顺序索引 即支持索引 3 List容器中的元素对应一个整数型的序号 记载其在容器中的索引位置 可以根据序
  • C语言:二分法查找

    什么是二分法查找 二分法查找是通过循环平分的方式 来进行查找想要的数或数据 那么 要怎么编写这样的代码呢 首先 要把一系列的数组存入变量当中去 将其当成已知数据 比如将1 10十个数字存到变量中去 就可以写成 然后就要知道 查找数据是通过下
  • Python,使用Anaconda安装Levenshtein,出现: Failed building wheel for xxx错误

    出现原因 缺失相应的whl文件 解决办法 下载并安装对应的whl文件 点击下方链接 即可找到并下载相对应的whl文件 Unofficial Windows Binaries for Python Extension Packages 例如
  • flink学习44:基于行的操作分组和窗口的聚合

  • 华为/华三交换机配置自动备份到FTP/SFTP

    数据通信 建设篇 第一章 华为 华三交换机配置自动备份到FTP SFTP 数据通信 建设篇 下章内容 华为 华三交换机配置自动备份到FTP SFTP 背景介绍 注意事项 华为交换机配置自动备份 新华三交换机配置自动备份 参考来源 下章内容
  • Syslog日志服务器配置 For CentOS 7.8(Syslog+LogAnalyzer+LAMP)

    声明 本教程仅供学习 研究 测试使用 本文作者不承担任何法律责任 本次中央日志服务器采用rsyslog提供日志接收服务 Mariadb作为后端数据库提供日志存储服务 一 安装CentOS 7操作系统 1 CentOS7的操作系统安装过程本文
  • ASP.NET中上传文件到数据库

    介绍 为什么要将文件保存到数据库呢 理由很多 最直接的就是 将文件放入数据库以后 可以对文件进行更好的管理 特别是文本文件 图片等 如果不使用数据库 数量巨大的时候 很难做到有效的管理和区别 特别是需要作一些与文字密切相关的应用的时候 将文
  • Python3使用urllib访问网页

    介绍 改教程翻译自python官网的一篇文档 urllib request是一个用于访问URL 统一资源定位符 的Python模块 它以urlopen函数的形式提供了一个非常简单的接口 可以访问使用多种不同协议的URL 它也提供了一个稍微复
  • 通过Nginx(basic auth)实现Prometheus账号密码登录

    一 原因 因客户Red Hat 7 5服务器安装部署grafana无法添加prometheus数据源 以及无法修改初始密码 为确保环境访问安全 特别研究通过账号密码认证访问prometheus 搜索了很多资料 但都缺这缺那 所以我这里记录下
  • AppStore 提审时的“出口合规证明”处理

    对于加密的管理 Apple不比之前严格了 一般选 否 也能通故审核 每次提交审核的时候都会让确认是否使用了Apple以的加密算法 在窗口提示了我们可以看到 可以在Xcdoe的info plist文件中增加App Uses Non Exemp
  • 众多Android 开源项目推荐,给力工作给力学习

    FBReaderJ FBReaderJ用于Android平台的电子书阅读器 它支持多种电子书籍格式包括 oeb ePub和fb2 此外还支持直接读取zip tar和gzip等压缩文档 项目地址 http www fbreader org F
  • jFinal框架下controller接参

    一 表单参数 1 前端 contentType x www form urlencoded 2 apipost接口测试 3 controller接参 1 注解 getPara获取参数 2 注解 默认参数 若方法的参数名为注解名 则jFina
  • Python 基础知识

    进阶选手 Python 进阶知识 Aimin20210819的博客 关注VXG AIMIN2020 更多 目录 1 Python 是怎么理解 2 Python数据类型 四种数据类型
  • 在Firefox浏览器中导入Burp Suite证书

    在日常的渗透中 经常就是在浏览器用bp来抓包 在配置完浏览器的代理的时候就会涉及CA证书问题 在设置完代理后 再访问百度时 就会出现如下图的问题 第一步 导出证书 打开burp suite 找到 代理 Proxy 在选择 选项 Option
  • 指针加法:c = (int *) ((char *) c + 1)与 c=c+1 的区别

    示例代码 include
  • Qt通过QSttings类读取*.ini配置文件

    目录 ini文件 什么是ini文件 格式 需要的参数 需要了解的API 单例 单线程实例 多线程实例 设计一个读取ini文件的类 AppSettings类 ini文件 什么是ini文件 INI Initialization File 是微软
  • DTO和POJO实体类之间值映射

    package cn test util import java lang reflect Method import java util List public class AutoMapper public static
  • Git:Git中的远程操作和标签管理--分布式版本控制系统

    文章目录 理解分布式版本控制系统 克隆仓库 远程推送 拉取远程仓库 配置Git 标签管理 本篇主要总结关于Git中远程操作的相关事项 理解分布式版本控制系统 在进行远程操作前 首先要理解什么是分布式版本控制系统 理解这个问题时要思考这样的问