Git 和 Github 的使用
补充内容:EasyHPC - Git入门教程【笔记】
文章目录
- 常用命令
- 配置信息
- 分支管理
- 管理仓库
- 概念理解
- SSH 密钥
- HTTPS 和 SSH 的区别
- 在本地生成 SSH key
- 在 Github 上添加 SSH key
- 使用的例子
- 同步本地仓库的修改到远程仓库
- 拉取远程仓库的修改到本地仓库
- 拉取远程仓库的分支并修改提交
- 将本地分支提交到不同的远程分支
- 将本地分支提交到不同的本地分支
- 参考
常用命令
配置信息
git config --global user.name "用户名" # 配置用户名
git config --global user.email "邮箱" # 配置邮箱地址
git config -l # 查看配置信息
分支管理
git branch # 显示本地仓库中的分支列表,当前的分支前会有一个星号标记。
git branch -r # 显示远程仓库中的分支列表。
git branch -a # 显示本地和远程仓库中的所有分支列表。
git branch <name> # 创建分支
git checkout <name> # 切换分支
管理仓库
git init # 初始化 git 仓库
git clone <repo> # 从 git 仓库中克隆项目
git status # 查看 git 当前状态
git status -s # 查看简易信息
git diff # 查看 git status 的详细信息
git add . # 将添加的文件或修改的文件加入本地的缓存区
git commit -m '注释' # 将缓存区内容添加到仓库中
git commit -am '注释' # 跳过 add 过程
git pull # 拉取 master 分支上的最新代码
git pull origin A # 拉取指定分支上的最新代码
概念理解
- 分支(branch)是用于在同一代码库中并行开发和维护不同功能的独立版本。
- 分叉(fork)是用于在开源项目中个人修改和贡献的方式,将主仓库的代码复制到自己的仓库中进行开发。
- 获取(fetch)用于将远程仓库的修改下载到本地,但不进行合并。
- 合并(merge)用于将远程仓库的修改与本地分支进行合并。
- 变基(rebase)用于将一系列提交应用于另一个分支,并整理提交历史。
- 克隆(clone)用于从远程仓库创建本地仓库的完整复制。
对分支(branch)和分叉(fork)的个人理解:去别人的开源仓库,把项目 fork 到自己的仓库,在自己的仓库里创建 branch 开发新的功能。
SSH 密钥
HTTPS 和 SSH 的区别
-
HTTPS 可以随意克隆 Github 上的项目,而不管是谁的;而 SSH 则是,你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key,否则无法克隆。
-
HTTPS 在 push 的时候是需要验证用户名和密码的;而 SSH 在 push 的时候,是不需要输入用户名的,如果配置 SSH key 的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。
在本地生成 SSH key
查看本地是否有已经生成好的 ssh key:
cat ~/.ssh/id_rsa.pub
若有,则先删除:
cd ~
rm -rf .ssh
重新生成 ssh key:
ssh-keygen -t rsa -C "邮箱"
代码参数含义:
t
指定密钥类型,默认是 rsa ,可以省略。C
设置注释文字,比如邮箱。f
指定密钥文件存储文件名。
接着,连续按回车。
在.ssh目录下得到了两个文件:id_rsa(生成的私钥)和 id_rsa.pub(生成的公钥)。
查看新生成的 ssh key:
cat ~/.ssh/id_rsa.pub
在 Github 上添加 SSH key
登录GitHub,点头像,点Settings,点SSH and GPG keys,点New SSH key,输入Title和Key。
Title 可以自定义,Key 就是
cat ~/.ssh/id_rsa.pub
输出的内容。
点击 Add SSH key。
测试是否设置成功:
ssh -T git@github.com
设置成功后,即可不需要账号密码 clone 和 push 代码。
使用的例子
随便找了一个开源项目,fork 一份。
在本地 clone 一份:
git clone git@github.com:zhulu506/demo.git
同步本地仓库的修改到远程仓库
在本地的 demo 项目里新建一个 .txt 文件,提交更改:
cd demo/ # 进入 demo 项目
echo "hello world" > new.txt # 新建一个 .txt 文件
git add new.txt # 添加跟踪
git commit -m 'add new.txt' # 提交到本地仓库
git push # 将本地提交同步到远程仓库
拉取远程仓库的修改到本地仓库
直接在 Github 网页上修改 .txt 文件。
从远程仓库拉取更新并合并到当前分支:
git pull
git pull
相当于先运行 git fetch
获取远程更新,再运行 git merge
合并更新到当前分支。
拉取远程仓库的分支并修改提交
情况:拉取远程仓库后,在远程仓库创建了新的分支 v1。
# 最初在本地分支 master
git pull # 拉取 master 分支上的最新代码
git checkout v1 # 切换到分支 v1,跟踪远程分支 v1
touch new_file # 修改动作
git add .
git commit -m 'add new_file'
git push
将本地分支提交到不同的远程分支
情况:远程仓库存在分支 v2,将本地分支 v1 的更改提交到 v2。
# 最初在本地分支 v1
git pull
touch new_file
git add .
git commit -m 'add new_file'
git push origin v1:v2
将本地分支推送到不同远程分支:git push <远程仓库名称> <本地分支名称>:<远程分支名称>
将本地分支提交到不同的本地分支
情况:本地存在分支 v1,将修改提交到本地分支 v3,再提交到远程分支 v3。
# 最初在本地分支 v1,远程仓库中还没有分支 v3。
vi new_file # 修改动作
git status # 将 v1 分支上的修改暂存起来
git checkout -b v3 # 在本地新建分支
git stash pop # 将暂存的修改放到新建分支中
git add .
git commit -m 'updata new_file'
git push -u origin v3 # 将提交的内容 push 到远程分支 v3
如果远程仓库没有该分支,则需要设置 upstream:git push --set-upstream origin target-branch-name
,或简写为:git push -u origin target-branch-name
。
参考
- GitHub 文档
- Git分支(branch)和分叉(fork)的区别
- Git 两个重要概念,即Forking(派生)和Branching(分支),以及它们在GitHub上的应用和区别
- 设置或重置ssh key
- Github 生成SSH秘钥(详细教程)
- Github配置ssh key的步骤(大白话+包含原理解释)
- Linux/Ubuntu下使用git从Github拉取项目文件、提交修改后文件的完整流程演示
- github 配置使用 personal access token 认证
- Git 教程 | 将本地修改后的文件推送到 Github 指定远程分支上
- Git:将当前修改的内容提交到新的分支上
相关文章:
Git 和 Github 的使用
补充内容:EasyHPC - Git入门教程【笔记】 文章目录 常用命令配置信息分支管理管理仓库 概念理解SSH 密钥HTTPS 和 SSH 的区别在本地生成 SSH key在 Github 上添加 SSH key 使用的例子同步本地仓库的修改到远程仓库拉取远程仓库的修改到本地仓库拉取远程仓库的分支并…...
学习分享-断路器Hystrix与Sentinel的区别
断路器(Circuit Breaker)简介 断路器(Circuit Breaker)是一种用于保护分布式系统的服务稳定性和容错性的设计模式。它的主要作用是在检测到某个服务的调用出现故障(如超时、异常等)时,快速失败…...
社区物资交易互助平台的设计
管理员账户功能包括:系统首页,个人中心,管理员管理,基础数据管理,论坛管理,公告信息管理 前台账户功能包括:系统首页,个人中心,论坛,求助留言板,公…...
19-Nacos-服务实例的权重设置
19-Nacos-服务实例的权重设置 1.根据权重负载均衡: 1.服务器设备性能有差异,部分实例所在及其性能较高,有一些较差,我们希望性能好的机器承担更多的用户请求 Nacos提供了权重配置来控制访问频率,权重越大则访问频率…...
R语言数据探索和分析23-公共物品问卷分析
第一次实验使用最基本的公共物品游戏,不外加其他的treatment。班里的学生4人一组,一共44/411组。一共玩20个回合的公共物品游戏。每回合给15秒做决定的时间。第十回合后,给大家放一个几分钟的“爱心”视频(链接如下)&a…...
Webix前端界面框架:深度解析与应用实践
Webix前端界面框架:深度解析与应用实践 Webix,作为一款功能强大的前端界面框架,近年来在开发社区中逐渐崭露头角。本文将从四个方面、五个方面、六个方面和七个方面,深入剖析Webix的特性、优势、应用实践以及面临的挑战ÿ…...
Qt基于SQLite数据库的增删查改demo
一、效果展示 在Qt创建如图UI界面,主要包括“查询”、“添加”、“删除”、“更新”,四个功能模块。 查询:从数据库中查找所有数据的所有内容,并显示在左边的QListWidget控件上。 添加:在右边的QLineEdit标签上输入需…...
新书推荐:2.2.4 第11练:消息循环
/*------------------------------------------------------------------------ 011 编程达人win32 API每日一练 第11个例子GetMessage.c:消息循环 MSG结构 GetMessage函数 TranslateMessage函数:将虚拟键消息转换为字符消息 DispatchMessage函数…...
MASA:匹配一切、分割一切、跟踪一切
文章目录 摘要1、引言2、相关工作2.1、学习实例级关联2.2、Segment and Track Anything 模型 3、方法3.1、预备知识:SAM3.2、通过分割任何事物来匹配任何事物3.2.1、MASA流程3.2.2、MASA适配器3.2.3、推理 4、实验4.1、实验设置4.2、与最先进技术的比较4.3、消融研究…...
Websocket前端传参:深度解析与实战应用
Websocket前端传参:深度解析与实战应用 在现代Web开发中,Websocket作为一种双向通信协议,已经广泛应用于实时数据传输场景。前端传参作为Websocket通信的重要组成部分,其正确性和高效性直接影响到应用的性能和用户体验。本文将深…...
造假高手——faker
在测试写好的代码时通常需要用到一些测试数据,大量的真实数据有时候很难获取,如果手动制造测试数据又过于繁重无聊,显得不够优雅,今天我们介绍的faker这个轮子可以完美的解决这个问题。faker是一个用于生成各种类型假数据的库&…...
前端工程化工具系列(十二)—— PostCSS(v8.4.38):CSS 转换工具
PostCSS 是转换 CSS 语法的工具。它提供 API 来对 CSS 文件进行分析和修改它的规则。 PostCSS 本身并不能直接使用,主要是使用基于 PostCSS 编写的插件。 1 安装 pnpm add -D postcss-import postcss-nested postcss-preset-env cssnano2 配置 在项目根目录下创…...
Scanpy(3)单细胞数据分析常规流程
单细胞数据分析常规流程 面对高效快速的要求上,使用R分析数据越来越困难,转战Python分析,我们通过scanpy官网去学习如何分析单细胞下游常规分析。 数据3k PBMC来自健康的志愿者,可从10x Genomics免费获得。在linux系统上,可以取消注释并运行以下操作来下载和解压缩数据。…...
【Stable Diffusion】(基础篇二)—— Stable Diffusion图形界面介绍和基本使用流程
本系列笔记主要参考B站nenly同学的视频教程,传送门:B站第一套系统的AI绘画课!零基础学会Stable Diffusion,这绝对是你看过的最容易上手的AI绘画教程 | SD WebUI 保姆级攻略_哔哩哔哩_bilibili 在上一篇博客中,我们成功…...
OpenCv之简单的人脸识别项目(动态处理页面)
人脸识别 准备九、动态处理页面1.导入所需的包2.设置窗口2.1定义窗口外观和大小2.2设置窗口背景2.2.1设置背景图片2.2.2创建label控件 3.定义视频处理脚本4.定义相机抓取脚本5.定义关闭窗口的函数6.按钮设计6.1视频处理按钮6.2相机抓取按钮6.3返回按钮 7.定义关键函数8.动态处理…...
【Linux】进程间通信
目录 一、进程间通信概念 二、进程间通信的发展 三、进程间通信的分类 四、管道 4.1 什么是管道 4.2 匿名管道 4.2 基于匿名管道设计进程池 4.3 命名管道 4.4 用命名管道实现server&client通信 五、system V共享内存 5.1 system V共享内存的引入 5.2 共享内存的…...
UI与前端:揭秘两者的微妙差异
UI与前端:揭秘两者的微妙差异 在数字化时代的浪潮中,UI设计和前端开发已成为塑造用户体验的两大核心力量。然而,这两者之间究竟有何区别?本文将深入剖析UI设计与前端开发的四个方面、五个方面、六个方面和七个方面的差异…...
idea如何根据路径快速在项目中快速打卡该页面
在idea项目中使用快捷键shift根据路径快速找到该文件并打卡 双击shift(连续按两下shift) -粘贴文件路径-鼠标左键点击选中跳转的路径 自动进入该路径页面 例如:我的实例路径为src/views/user/govType.vue 输入src/views/user/govType或加vue后缀src/views/user/go…...
探索成功者的特质——俞敏洪的观点启示
在人生的舞台上,我们常常对成功者充满好奇与敬仰,试图探寻他们成功的奥秘。俞敏洪指出,成功者都具备七个特质,而这些特质与家庭背景和大学的好坏并无直接关系。让我们深入剖析这七个特质,或许能从中获得对我们自身成长…...
MCU的环形FIFO
fifo.h #ifndef __FIFO_H #define __FIFO_H#include "main.h"#define RINGBUFF_LEN (500) //定义最大接收字节数 500typedef struct {uint16_t Head; // 头指针 指向可读起始地址 每读一个,数字1uint16_t Tail; // 尾指针 指…...
使用proteus仿真51单片机的流水灯实现
proteus介绍: proteus是一个十分便捷的用于电路仿真的软件,可以用于实现电路的设计、仿真、调试等。并且可以在对应的代码编辑区域,使用代码实现电路功能的仿真。 汇编语言介绍: 百度百科介绍如下: 汇编语言是培养…...
【漏洞复现】Apache OFBiz 路径遍历导致RCE漏洞(CVE-2024-36104)
0x01 产品简介 Apache OFBiz是一个电子商务平台,用于构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类应用系统。是美国阿帕奇(Apache)基金会的一套企业资源计划(ERP)系统。该系统提供了一整套基于Java的Web应用程序组件和工具。 0x02 …...
数据库表中创建字段查询出来却为NULL?
起因: 今天新创建了一张表,其中一个字段命名为"word_num"带下划线,我在前端页面怎么也查询不出来word_num的值,后来在后端接口处打印了一下数据库查询出来的数据,发现这个字段一直为NULL,然后我就想到是不是…...
缓存方法返回值
1. 业务需求 前端用户查询数据时,数据查询缓慢耗费时间; 基于缓存中间件实现缓存方法返回值:实现流程用户第一次查询时在数据库查询,并将查询的返回值存储在缓存中间件中,在缓存有效期内前端用户再次查询时,从缓存中间件缓存获取 2. 基于Redis实现 参考1 2.1 简单实现 引入…...
【十大排序算法】快速排序
在乱序的世界中,快速排序如同一位智慧的园丁, 以轻盈的手法,将无序的花朵们重新安排, 在每一次比较中,沐浴着理性的阳光, 终使它们在有序的花园里,开出绚烂的芬芳。 文章目录 一、快速排序二、…...
linux系统ubuntu中在命令行中打开图形界面的文件夹
在命令行中打开当前路径,以文件管理器的形式打开: 命令 # 打开文件管理器 当前的路径 nautilus .nautilus 是一个与 GNOME 桌面环境集成的文件管理器的命令行启动程序。在 Linux 系统中,特别是使用 GNOME 作为桌面环境时,用户经…...
【C++11数据结构与算法】C++ 栈
C 栈(stack) 文章目录 C 栈(stack)栈的基本介绍栈的算法运用单调栈实战题LC例题:[321. 拼接最大数](https://leetcode.cn/problems/create-maximum-number/)LC例题:[316. 去除重复字母](https://leetcode.cn/problems/remove-duplicate-letters/) 栈的基…...
pdf文件如何防篡改内容
PDF文件防篡改内容的方法有多种,以下是一些常见且有效的方法,它们可以帮助确保PDF文件的完整性和真实性: 加密PDF文档: 原理:通过设置密码来保护PDF文档,防止未经授权的访问和修改。注意事项:密…...
QT 音乐播放器【二】 歌词同步+滚动+特效
文章目录 效果图概述代码解析歌词歌词同步歌词特效 总结 效果图 概述 先整体说明一下这个效果的实现,你所看到的歌词都是QGraphicsObject,在QGraphicsView上绘制(paint)出来的。也就是说每一句歌词都是一个图元(item)。 为什么用QGraphicsView框架&…...
关于怎么用Cubemx生成的USBHID设备实现读取一体的鼠标键盘设备(改进版)
主要最近做了一个要用STM32实现读取鼠标键盘一体的那种USB设备,STM32的界面上要和电脑一样的能通过这个USB接口实现鼠标移动,键盘的按键。然后我就很自然的去参考了正点原子的例程,可是找了一圈,发现正点原子好像用的库函数&#…...
高平企业网站/社交媒体营销
1.如果我要继承的基类是动态的(有时候是 A,有时候是 B),我应该如何部署我的代码,以便基类可以随意改变。 BaseAlias BaseClass # 为基类取别名class Derived(BaseAlias):def meth(self):BaseAlias.meth(self) # 通…...
用dw建设个人网站视频/广东清远今天疫情实时动态防控
1.设有一个n*m方格的棋盘(1≤m,n≤100)。 求出该棋盘中包含多少个正方形、多少个长方形(不包括正方形)。 求内切圆就是求正方形。 //xmin(m,n)-1 //长方形里面数正方形的个数计算公式:m*n(m-1)*(n-1).....(m-x)*(n-x…...
wordpress站内301/qq刷赞网站推广
这一周我们小组进行了JSON转换和数据库动态转换以及用户界面的编写等工作,我负责编写用户查看发布信息界面和申请发布界面。遇到的问题有element ui的card组件分页和表单数据与页面数据一起传到后端。 发布信息以el-card的形式展现在页面上,结合el-r…...
苏州网站制作/青岛百度推广优化
玩手机,玩相机,一直是从大学毕业以来每天的必想。我的手机生涯从毕业第三年开始,一晃快十年了,友人网是我常去的地方,当初注册的 “ 常来看看 ” 把后来的未来预测的很准。从玩手机到研究手机,现在集中自有…...
北京做网站s/深圳网站优化排名
代码实现报表打印 //初始化报表信息 private void SetReportInfo(string reportPath,string sourceName,DataTable dataSource,bool isFengPi) {if (!File.Exists(reportPath)) { MessageBox.Show("报表文件:" reportPath " 不存在!","提示&…...
wordpress pdf 加密/网络整合营销理论案例
本文通过介绍 Linux 系统工具(Ftkimage、xmount、Volatility、dd、netcat)来介绍使用计算机取证的方法和步骤。 硬盘数据的取证是指为了证据保全,确保取证工作造成数据丢失,在获取到证据介质后,首先要做的就是对介质数…...