[Git][远程操作]详细讲解

1.理解分布式版本控制系统

  • 形象理解每个⼈的电脑上都是⼀个完整的版本库
    • 这样⼯作的时候,就不需要联⽹了, 因为版本库就在⾃⼰的电脑上
  • 既然每个⼈电脑上都有⼀个完整的版本库,那多个⼈如何协作呢?
    • 例如:在⾃⼰电脑上改了⽂件A,同事也在他的电脑上改了⽂件A,这时,两个人之间只需把各⾃的修改推送给对⽅,就可以互相看到对⽅的修改了
  • 分布式版本控制系统的安全性要⾼很多,因为每个⼈电脑⾥都有完整的版本库,某⼀个⼈的电脑坏掉了不要紧,随便从其他⼈那⾥复制⼀份就可以了
  • 在实际使⽤分布式版本控制系统的时候,其实很少在两⼈之间的电脑上推送版本库的修改
    • 因为可能俩人不在⼀个局域⽹内,两台电脑互相访问不了,也可能今天同事病了,他的电脑压根没有开机
    • 因此,分布式版本控制系统通常也有⼀台充当“中央服务器”的电脑
      • 但这个服务器的作⽤仅仅是⽤来⽅便“交换”⼤家的修改,没有它⼤家也⼀样⼲活,只是交换修改不⽅便⽽已
      • 有了这个“中央服务器”的电脑,这样就不怕本地出现什么故障了
        请添加图片描述

2.克隆远程仓库

  • 克隆/下载远端仓库到本地git clone repositry_uri
  • SSH协议和HTTPS协议是Git最常使用的两种数据传输协议
    • SSH协议使⽤了公钥加密和公钥登陆机制,体现了其实⽤性和安全性
      • 使⽤此协议需要将自己的公钥放上服务器,由Git服务器进⾏管理
    • 使⽤HTTPS⽅式时,没有要求,可以直接克隆下来
  • 如何使用SSH方式克隆仓库呢?
    • 前置检查:在⽤⼾主⽬录下,看看有没有.ssh⽬录
      • 如果有,再看看这个⽬录下有没有id_rsaid_rsa.pub这两个⽂件
        • 如果已经有了,可直接跳到下⼀步
        • 如果没有,需要创建SSHKey
      • 如果没有需要先手动创建出该目录mkdir ~/.ssh
    • 创建SSH KEYssh-keygen -t rsa -C "email",配置一路默认即可
      • 创建完成后,可以在用户主目录里的.ssh文件夹内找到id_rsaid_rsa.pub,这两个就是SSH KEY的密钥对
      • id_rsa是私钥,不能泄露出去
      • id_rsa.pub是公钥,可以放心地告诉任何人
    • 添加公钥至远端仓库cat id_rsa.pub获取公钥内容,原封不动复制到远端仓库的SSH公钥部分即可
    • 至此,已经可以成功在本地用SSH方式克隆仓库了
  • 注意SSH协议每次推送是不用输入密码的,但如果是HTTPS协议,每次推送都必须输入密码
  • 从远程仓库克隆后,实际上Git会⾃动把本地的master分⽀和远程的master分⽀对应起来
    • 远程仓库的默认名称是origin ,本地可以使⽤git remote命令,来查看远程库的信息
    • git remove -v可以显示更详细的信息

3.向远程仓库推送

  • 前提:在本地仓库配置了和远端仓库一样的用户名和邮箱
  • 将本地仓库的内容推送至远端仓库git push
  • 详细命令格式git push <远程主机名> <本地分支名>:<远程分支名>
  • 如果本地分支名与远程分支名相同,则可以省略冒号git push <远程主机名> <本地分支名>

4.拉取远程仓库

  • 如果远程仓库是要领先于本地仓库⼀个版本,为了使本地仓库保持最新的版本,需要拉取下远端代码,并合并到本地
  • 从远程获取代码并合并本地的版本git pull
  • 详细命令格式git pull <远程主机名> <远程分支名>:<本地分支名>
  • 如果远程分支名与本地分支名相同,则可以省略冒号git push <远程主机名> <远程分支名>

5.配置 Git

1.忽略特殊文件

  • 在⽇常开发中,有些⽂件不想或者不应该提交到远端,那如何让Git知道该忽略哪些文件呢?
    • 在Git⼯作区的根⽬录下创建⼀个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件了
  • 如果已经忽略了某个类型的文件,但是又想追踪管理某个特定的该类型文件,该怎么办?
    • 方法一:使用git add -f file_name强制添加
    • 方法二:在.gitignore中添加配置!file_name即可让Git不忽略该文件
  • 如果觉得.gitignore有问题,想知道哪个规则写错了,该怎么办?
    • 可以使用git check-ignore -v file_name来检查相关配置
  • 配置示例
    # 忽略特定文件格式
    *.so
    *.ini# 忽略特定文件
    SnowK.sh# 不忽略特定文件
    !Die.so
    

2.给命令配置别名

  • Git支持对命令进行简化git config [--global] alias.<别名> <被别名替换的命令>
    • 被别名替换的命令中,如果含有空格,可以使用双引号("")括起来
    • --global参数为全局参数,即设置后在任意一个仓库都可使用设置的别名
      • 如果不添加--global参数,只能在该仓库内使用设置的别名
  • 示例
    $ git config --global alias.st status
    $ git st
    On branch main
    Your branch is up to date with 'origin/main'.nothing to commit, working tree clean$ git config --global alias.lpa "log --pretty=oneline --abbrev-commit"
    $ git lpa
    33d983d (HEAD -> main, origin/main) Done gitignore
    8c28641 test .gitignore
    b0f37ed Update from Github
    6570136 First Commit
    

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

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

相关文章

ajax图书管理项目

bootstrap弹框 不离开当前页面&#xff0c;显示单独内容&#xff0c;让用户操作 功能&#xff1a;不离开当前页面&#xff0c;显示单独内容&#xff0c;供用户操作步骤&#xff1a; 1.引入bootstrap.css和bootstrap.js …

Stegdetect教程:如何用Stegdetect检测和破解JPG图像隐写信息

一、Stegdetect简介 Stegdetect 是一个开源工具&#xff0c;专门设计用于检测图像文件&#xff08;JPG格式&#xff09;中的隐写信息。Stegdetect 可以检测多种常见的隐写方法&#xff0c;比如 JSteg、JPHide 和 OutGuess 等。 二、使用Stegdetect检测图像隐写 官方描述&#…

NSS [SWPUCTF 2022 新生赛]file_master

NSS [SWPUCTF 2022 新生赛]file_master 开题&#xff0c;一眼文件上传。 network看看返回包。后端语言是PHP。 除了文件上传还有个查看文件功能。 起手式查询/etc/passwd&#xff0c;发现查询方法是GET提交参数&#xff0c;后端使用file_get_contents()函数包含文件。同时有op…

企业级业务架构设计探讨

引言 在数字化转型的浪潮中&#xff0c;企业业务架构的设计成为了连接企业战略与技术实现的桥梁&#xff0c;其重要性日益凸显。本文探讨企业级业务架构的设计原则、流程、工具和技术实现&#xff0c;并结合具体案例&#xff0c;为读者提供参考。 一、设计原则&#xff1a;奠…

KubeSphere 部署的 Kubernetes 集群使用 GlusterFS 存储实战入门

转载&#xff1a;KubeSphere 部署的 Kubernetes 集群使用 GlusterFS 存储实战入门 知识点 定级&#xff1a;入门级 GlusterFS 和 Heketi 简介 GlusterFS 安装部署 Heketi 安装部署 Kubernetes 命令行对接 GlusterFS 实战服务器配置(架构1:1复刻小规模生产环境&#xff0c;…

新手学习Gazebo+ros仿真控制小车-----易错和自己理解

赵虚左老师讲的很详细&#xff0c;这里只是理一下思路&#xff0c;说下突然出现“新”概念之间的关系。 urdf文件:里面是配置模型的&#xff0c;既有模型的位置、尺寸、颜色&#xff0c;也包含复杂的物理模型信息比如&#xff1a;转动惯量&#xff0c;碰撞box大小等等&#xff…

黑马Java零基础视频教程精华部分_11_面向对象进阶(3)_抽象类、接口、适配器

《黑马Java零基础视频教程精华部分》系列文章目录 黑马Java零基础视频教程精华部分_1_JDK、JRE、字面量、JAVA运算符 黑马Java零基础视频教程精华部分_2_顺序结构、分支结构、循环结构 黑马Java零基础视频教程精华部分_3_无限循环、跳转控制语句、数组、方法 黑马Java零基础视…

书生大模型基础岛-第二关:8G 显存玩转书生大模型 Demo

1.来源 https://github.com/InternLM/Tutorial/blob/camp3/docs/L1/Demo/task.md 2.过程 在 /root/share/pre_envs 中配置好了预置环境 icamp3_demo conda activate /root/share/pre_envs/icamp3_demo创建一个目录&#xff0c;用于存放我们的代码。并创建一个 cli_demo.py …

【hive】HiveSQL中两个json解析函数的使用json路径定位小工具

文章目录 1.HiveSQL中两个json解析函数1&#xff09;get_json_object2&#xff09;json_tuple 2.json中key所在层级路径定位小工具 关于json&#xff1a; https://blog.csdn.net/atwdy/article/details/124668815 1.HiveSQL中两个json解析函数 1&#xff09;get_json_object …

C语言程序设计-[3] 运算符和表达式

C语言的运算符也存在优先级和结合性的概念&#xff0c;在同一表达式中&#xff0c;优先级高的先结合&#xff0c;优先级相同时&#xff0c;就需要考虑结合性(分为左结合性和右结合性——对于单目、三目和赋值运算符表达式&#xff0c;从右至左运算&#xff1b;其他运算符表达式…

【Mind+】掌控板入门教程04 迷你动画片

还记得小时候每天放学必看的动画片吗&#xff1f;还记得那些年陪伴我一起长大的卡通人物吗&#xff1f;勇救爷爷的葫芦娃&#xff0c;我们的朋友小哪吒&#xff0c;相信这些经典的动画形象已经成为了一代人童年的美好回忆。今天就让我们用掌控板来制作一部迷你动画片吧。 项目示…

什么是云原生?

1. 前言 停下手头的工作&#xff0c;让你的同事定义“云原生”一词。你很可能会得到几个不同的答案。 1.1 让我们从一个简单的定义开始&#xff1a; 云原生架构和技术是一种设计、构建和操作在云中构建并充分利用云计算模型的工作负载的方法。 1.2 云原生计算基金会给出了官方…

Godot的节点与场景

要深入的理解节点与场景&#xff0c;我们需要跳出这两个概念来看他。说的再直白一些godot本质就是一个场景编辑器&#xff01; 场景的概念应该在我们平时看电影看电视时会经常提到&#xff0c;比如某一个打斗的场景&#xff0c;这个场景可能会被设在某一个街道&#xff0c;那么…

数据湖之Hudi

Apache Hudi&#xff08;Hadoop Upserts Deletes and Incrementals&#xff09;是一个用于管理大规模数据湖的开源框架&#xff0c;旨在高效地进行数据的插入、更新和删除操作&#xff0c;并支持流式数据的处理。Hudi 的设计目标是解决传统数据湖在数据管理和查询性能上的不足&…

如何将本地代码上传到github

将本地文件上传到GitHub仓库的过程通常包括以下几个步骤&#xff1a; 一 创建GitHub仓库&#xff1a; 如果你还没有一个GitHub仓库&#xff0c;首先需要在GitHub上创建一个新的仓库。登录到你的GitHub账户&#xff0c;然后点击“New repository”按钮&#xff0c;填写仓库的相关…

oracle(19c)用户管理

简介 本文介绍 Oracle 中的用户管理&#xff0c;包含以下内容&#xff1a; 概念介绍 系统用户 解锁 hr 用户 创建用户 用户相关案例 使用 Profile 管理用户口令 Oracle 的认证方式 重置管理员(sys)密码 1. 概念介绍 Oracle 中可以创建多个 Database 实例&#xff0c;…

(STM32笔记)九、RCC时钟树与时钟 第一部分

我用的是正点的STM32F103来进行学习&#xff0c;板子和教程是野火的指南者。 之后的这个系列笔记开头未标明的话&#xff0c;用的也是这个板子和教程。 九、RCC时钟树与时钟 九、RCC时钟树与时钟1、时钟树HSE时钟HSI时钟锁相环时钟系统时钟HCLK时钟PCLK1时钟PCLK2时钟RTC时钟独…

后端学习笔记(3)--Maven

1.Maven ​ *专门用于管理和构建Java项目的工具&#xff0c;主要功能有&#xff1a; ​ 1.提供了一套标准化的项目结构 ​ 2.提供了一套标准化的构建流程(编译&#xff0c;测试&#xff0c;打包&#xff0c;发布) ​ 3.提供了一套依赖管理机制 1.简介 ​ *Apache Maven是一…

服务器自动部署网络安装环境

实验环境 rhel7&#xff1a;IP地址为172.25.254.200、主机名为node1.rhel7.org 实验配置 一.kickstart自动安装脚本制作 1.安装图形化生成kickstart自动安装脚本的工具 [rootnode1 ~]# yum install system-config-kickstart 2. 启动图形制作工具 [rootnode1 ~]# system-…

【网络编程】网络原理(一)

系列文章目录 1、 初识网络 2、网络编程的基础使用&#xff08;一&#xff09; 文章目录 系列文章目录前言一、端口号的使用二、UDP报文学习1.报文格式2.MD5算法 总结 前言 在前文中&#xff0c;主要对UDP和TCP协议有了简单的了解&#xff0c;而这两种协议是负责传输层的内容…