当前位置: 首页 > news >正文

Git 基本操作【本地仓库与远程仓库的推送、克隆和拉取】

文章目录

  • 一、Git简介
  • 二、Git的下载安装
  • 三、Git常规命令
  • 四、新建本地仓库
  • 五、本地分支操作
  • 六、Git远程仓库
  • 七、远程仓库克隆、抓取和拉取
  • 八、总结
  • 九、学习交流


一、Git简介

Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS),分为两种类型的仓库:
本地仓库和远程仓库
工作流程如下
1.从远程仓库中克隆或拉取代码到本地仓库(clone/pull)
2.从本地进行代码修改
3.在提交前先将代码提交到暂存区
4.提交到本地仓库。本地仓库中保存修改的各个历史版本
5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库

二、Git的下载安装

官网下载地址:https://git-scm.com/download

    1. 选择开发环境,这里我以Windows为例
      在这里插入图片描述
    1. 选择对应的系统位下载
      在这里插入图片描述
    1. 安装时全部选择默认即可,安装完后进入某一个文件夹,出现如下情况即为安装成功!
      在这里插入图片描述

三、Git常规命令

  1. 初始化本地仓库
git init
  1. 查看文件状态
git status
  1. 将文件从工作区移至暂存区
    例如:git add test.txt,表示将文件test.txt放入到暂存区中
git add 文件名
  1. 将暂存区的文件提交到本地仓库
    例如git commit -m “add test.txt”,表示将暂存区的文件都提交到本地仓库,并备注“add test.txt”
git commit -m “备注”
  1. 查看提交版本记录
git log
  1. 查看历史操作记录
git reflog
  1. 版本回退,commitID为回退的ID号,ID号可用git log指令查看
git reset --hard commitID
  1. 起别名。在本机用户(例如我的:C/用户/18100)的目录下创建文件“.bashrc”,在该文件里输入指令起别名。例如:
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'

即将git log --pretty=oneline --all --graph --abbrev-commit起别名为git-log,该语句意为git log的优化使用。

  1. 左键双击可选中字符表示复制,按下鼠标滚轮表示粘贴。

  2. 若不想让某些文件纳入git管理,则在工作目录中创建.gitignore文件,里面输入需要忽略的文件名。例如:忽略所有.a后缀的文件,则在.gitignore中编辑“*.a

四、新建本地仓库

    1. 新建一个文件夹作为测试使用
    1. 进入该文件夹,右键选择Git bash
    1. 在命令行中输入“git init”,初始化本地仓库
    1. 在命令行中输入“touch test.txt”,在仓库中创建一个文件,此时该文件处于工作区状态(一个文件想存储到本地仓库需要经过2个变换:工作区–>暂存区、暂存区–>本地仓库)
    1. 将文件放入暂存区中。输入命令“git add test.txt”,该命令表示将文件test.txt放入到暂存区中。
    1. 提交到本地仓库。输入指令“git commit -m "add test.txt"”,该命令表示将暂存区的文件都提交到本地仓库,并备注“add test.txt”

五、本地分支操作

    1. 查看本地分支
git branch
    1. 创建本地分支
git branch 分支名
    1. 切换分支
git checkout 分支名
    1. 直接切换到一个不存在的分支(创建并切换)
git checkout -b 分支名
    1. 合并分支,将“分支名”合并到当前的分支上
git merge 分支名
    1. 删除分支,需要做各种检查(推荐使用)
git branch -d 分支名
    1. 强制删除分支,无需任何检查
git branch -D 分支名

六、Git远程仓库

这里我以Gitee为例,建立远程仓库,Github、Gitlab等同理。

    1. 注册登录Gitee账号
    1. 在Gitee上创建仓库
      在这里插入图片描述
    1. 回到本地仓库Git bash上,输入命令“ssh-keygen -t rsa”,然后一直回车即可
    1. 获取公钥,继续输入命令“cat ~/.ssh/id_rsa.pub”,复制如下公钥
      在这里插入图片描述
    1. 回到Gitee,打开设置,进入SSH公钥,在公钥编辑框内输入粘贴到的公钥
      在这里插入图片描述
    1. 验证公钥是否配置成功。回到Git bash,输入“ssh -T git@gitee.com
    1. 到Gitee中复制仓库的SSH地址
      在这里插入图片描述
    1. 添加远程仓库,地址为上面复制的SSH地址,起别名为“origin”到git bash中输入“git remote add origin SSH地址
    1. 验证是否添加成功,查看远程仓库,输入指令“git remote
    1. 将本地仓库推送到远程仓库,输入指令“git push 远端名称 本地分支名:远端分支名”,例如git push origin master:master

以上推送到远程仓库的步骤可用改用“git push --set-upstream origin master”,意为当前分支与远端的master分支关联起来,并同时完成推送,即在以后的推送中可以直接使用“git push”完成推送。
Tips:git branch -vv:可查看分支的关联关系。

七、远程仓库克隆、抓取和拉取

  • 1. 克隆
    在计算机某文件夹中打开git bash,输入“git clone 仓库SSH地址 本地目录”,意为对远程仓库进行复制,存放到“文件夹”中,其中“本地目录”可省略,系统会自动生成一个目录。
  • 2. 抓取
    抓取命令“git fetch 远端名 远端分支”,即将远端仓库里的某个分支的更新都抓取到本地,不会合并,如果不指定远端名和分支名,则抓取所有分支。
  • 3. 拉取
    拉取命令“git pull 远端名 远端分支”,即将远端仓库的修改拉取到本地并会自动进行合并,等同于fetch+merge,如果不指定远端名和分支名,则拉取所有分支。

Tips:git merge origin/master”为将远程仓库的master分支合并到本地分支

八、总结

在这里插入图片描述
本地仓库:是在开发人员自己电脑上的Git仓库,存放我们的代码(.git 隐藏文件夹就是我们的本地仓库)
远程仓库:是在远程服务器上的Git仓库,存放代码(可以是github.com或者gitee.com 上的仓库,或者自己该公司的服务器)
工作区: 我们自己写代码(文档)的地方
暂存区: 在 本地仓库中的一个特殊的文件(index) 叫做暂存区,临时存储我们即将要提交的文件

Clone:克隆,就是将远程仓库复制到本地仓库
Push:推送,就是将本地仓库代码上传到远程仓库
Pull:拉取,就是将远程仓库代码下载到本地仓库,并将代码 克隆到本地工作区

九、学习交流

学习交流 联系下方wx即可👇👇👇
在这里插入图片描述

相关文章:

Git 基本操作【本地仓库与远程仓库的推送、克隆和拉取】

文章目录 一、Git简介二、Git的下载安装三、Git常规命令四、新建本地仓库五、本地分支操作六、Git远程仓库七、远程仓库克隆、抓取和拉取八、总结九、学习交流 一、Git简介 Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS&…...

FPGA开发

https://www.enclustra.com.cn/?bd_vid11435475462206745180 https://www.monolithicpower.cn/design-tools/design-tools/llc-design-tool.html https://www.elecfans.com/article/88/143/2012/20120718280641_2.html...

js手撕代码

1、实现instanceof运算符 instanceof运算符用于检测构造函数的prototype属性是否出现在某个实例对象的原型链上,运算符左侧是实例对象,右侧是构造函数。 const isInstanceof function(left,right){let proto Object.getPrototypeOf(left);while(true…...

typecho反序列化

typecho反序列化 环境的搭建 漏洞复现前提 <?php class Typecho_Feed {const RSS1 RSS 1.0;const RSS2 RSS 2.0;const ATOM1 ATOM 1.0;const DATE_RFC822 r;const DATE_W3CDTF c;const EOL "\n";private $_type;private $_items;public function __const…...

php程序设计的基本原则

单一职责原则&#xff08;SRP&#xff09;&#xff1a;一个类应该只有一个原因引起变化&#xff0c;即一个类应该只负责一项职责。 class User {private $name;private $email;public function __construct($name, $email) {$this->name $name;$this->email $email;}p…...

python execute() 使用%s 拼接sql 避免sql注入攻击 好于.format

1 execute(参数一:sql 语句) # 锁定当前查询结果行 cursor.execute("SELECT high, low, vol FROM table_name WHERE symbol %s FOR UPDATE;"% (symbol,)) 2 .format() cursor.execute("SELECT high, low, vol FROM table_name WHERE symbol {} FOR UPDATE;…...

RPC项目解析(1)

分布式通信框架&#xff1a;让远程方法调用和调用进程内方法一样简单 RPC通信原理 rpc&#xff1a;远程过程调用&#xff08;远程能够调用其他模块的方法&#xff09; 在rpc中需要发送时候&#xff0c;对发送的信息进行序列化&#xff0c;在服务端对接收到的信息进行反序列化…...

点云从入门到精通技术详解100篇-基于 RGB 图像与点云融合的三维点云分割算法及成像系统

目录 前言 相机和激光雷达标定研究现状 点云分割算法研究现状...

JDK8新特性

Lembda表达式 lembda表达式是一个简洁、可传递的匿名函数,实现了把代码块赋值给一个变量的功能 是我认为jdk1.8中最让人眼前一亮的特性&#xff08;我没用过其他函数式的语言&#xff09; 在了解表达式之前&#xff0c;我们先看两个概念 函数式接口 含有且仅含有一个抽象方法&…...

X86_64函数调用汇编程序分(2)

X86_64函数调用汇编程序分&#xff08;2&#xff09; 1 X86_64寄存器使用标准2 leaveq和retq指令2.1 leaveq2.2 retq 3 执行leaveq和retq之后栈的结构3.1 执行leaveq之后栈的结构3.1.1 test_fun_b函数执行leaveq之前的栈结构示意图3.1.2 test_fun_b函数执行leaveq之后的栈结构示…...

组件传值之ref(解决父传子动态绑定问题)

在父组件往子组件传值&#xff0c;子组件中要显示父组件的信息&#xff0c;首先是在网上搜的watch 来监听组组件的props,但是父组件只传一次&#xff0c;后续再更改就没了&#xff0c;所以我用的$refs props:{params:{type:Object;defult():{return {} } } }watch:{params: {/…...

vscode-server

1know_host清除 2 删除服务器里的home/user/.vscode-server&#xff08;不是根root下的vscode-server&#xff09;&#xff0c;删除时用户名保持一致。 3 ssh配置文件 /etc/ssh/sshd_config[想改变,使用root&#xff0c;修改文件权限] 4 删除修改后&#xff0c;重启Windows下…...

ubuntu 20.04安装开发环境总结_安装python

Ubuntu 20.04 是一款主要面向开发人员的操作系统之一&#xff0c;与此同时&#xff0c;它还支持多种开发环境和工具的使用。但是因为对市面上各种软件的支持没有window那样友好&#xff0c;所以对ubuntu系统安装配置各种环境的问题做了个总结 安装 PyCharm&#xff1a; 可以从…...

尚硅谷_宋红康_IntelliJ IDEA 常用快捷键一览表

1-IDEA的日常快捷键 第1组&#xff1a;通用型 说明快捷键复制代码-copyctrl c粘贴-pastectrl v剪切-cutctrl x撤销-undoctrl z反撤销-redoctrl shift z保存-save allctrl s全选-select allctrl a 第2组&#xff1a;提高编写速度&#xff08;上&#xff09; 说明快捷…...

Java设计模式之建造者模式详解(Builder Pattern)

在日常的开发工作中&#xff0c;我们常常需要创建一些复杂的对象。这些对象可能包含许多不同的属性&#xff0c;并且这些属性的初始化过程可能相当复杂。在这种情况下&#xff0c;建造者模式是一种非常有用的设计模式&#xff0c;因为它允许我们分步骤地创建复杂的对象。 概念和…...

TCP的滑动窗口与拥塞控制

客户端每发送的一个包&#xff0c;服务器端都应该有个回复&#xff0c;如果服务器端超过一定的时间没有回复&#xff0c;客户端就会重新发送这个包&#xff0c;直到有回复。 为了保证顺序性&#xff0c;每一个包都有一个 ID。在建立连接的时候&#xff0c;会商定起始的 ID 是什…...

MySQL更新语句执行过程

执行流程 update t set name XXX where id 1; 加载id1的记录所在的整页数据到缓存池&#xff1b;旧值写入undolog便于回滚&#xff1b;更新内存数据&#xff1b;写redo log到RedoBuff&#xff1b;redo log顺序写入磁盘&#xff0c;准备提交事务&#xff08;prepare阶段&…...

Matlab图像处理-彩色图像基础

彩色的物理认识 人类能够感知的物体的颜色是由物体反射的光的性质决定的。如图8-2所示&#xff0c;可见光是由电磁波谱中较窄的波段组成。 如果物体反射的光在所有可见光波长范围内都是平衡的&#xff0c;那么从观察者的角度来看&#xff0c;它是白色的&#xff1b; 如果物体…...

MATLAB算法实战应用案例精讲-【数模应用】数据中台

目录 前言 几个高频面试题目 数据中台、数仓、大数据平台的区别 1)数据中台VS数据仓库...

el-form动态检验无法生效问题(已解决)

要对el-form里面的字段动态生成校验规则&#xff0c;测试了一系列的骚操作也无法生效&#xff0c;要么是require视图生效了&#xff0c;校验规则还是不生效;看了csdn里面好多方案&#xff0c;都是废话&#xff0c;废话&#xff0c;直接上硬货&#xff0c;最终总结如下&#xff…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

面试高频问题

文章目录 &#x1f680; 消息队列核心技术揭秘&#xff1a;从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"&#xff1f;性能背后的秘密1.1 顺序写入与零拷贝&#xff1a;性能的双引擎1.2 分区并行&#xff1a;数据的"八车道高速公路"1.3 页缓存与批量处理…...

图解JavaScript原型:原型链及其分析 | JavaScript图解

​​ 忽略该图的细节&#xff08;如内存地址值没有用二进制&#xff09; 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么&#xff1a;保存在堆中一块区域&#xff0c;同时在栈中有一块区域保存其在堆中的地址&#xff08;也就是我们通常说的该变量指向谁&…...

[拓扑优化] 1.概述

常见的拓扑优化方法有&#xff1a;均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有&#xff1a;有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...

新版NANO下载烧录过程

一、序言 搭建 Jetson 系列产品烧录系统的环境需要在电脑主机上安装 Ubuntu 系统。此处使用 18.04 LTS。 二、环境搭建 1、安装库 $ sudo apt-get install qemu-user-static$ sudo apt-get install python 搭建环境的过程需要这个应用库来将某些 NVIDIA 软件组件安装到 Je…...

学习 Hooks【Plan - June - Week 2】

一、React API React 提供了丰富的核心 API&#xff0c;用于创建组件、管理状态、处理副作用、优化性能等。本文档总结 React 常用的 API 方法和组件。 1. React 核心 API React.createElement(type, props, …children) 用于创建 React 元素&#xff0c;JSX 会被编译成该函数…...