小白入门学习计算机辅助工具--Git和Github

news2024/11/27 23:31:56

虽然平时大家都有听过Github,但这实际上要分为Git和Github,我们可以简单理解为前者是用于本地,后者是远程端。下面我们来看看一些基本的操作。

Github创建仓库

让我们先从Github开始,点击右边的绿色按钮new进入创建库界面:

如图,在填写仓库的名字以及描述,点击勾选完初始化仓库信息后,就可以创建这个仓库了。

可以看到,创建的仓库名为'exercise-code',包含了一个commit,这是我们在勾选初始化信息后自动生成的,文件后缀为md,表示文件为markdown格式;包含有一个branch,是master分支,即主分支;还有一个contributor,对项目的贡献者,也就是答主本身。

回到主页,我们可以看到三样东西:popular repositories 、contributions in the last year以及Contribution activity,分别代表的是受欢迎的仓库,每个仓库通过star的数量标榜受欢迎程度,会展示个人受欢迎前六名的仓库;贡献标记,小方块的颜色越深,贡献越多;贡献活动记录,记录你每次做了什么。

GitHub常用术语

  • repository:简称repo,可以理解为“仓库”,我们的项目就存放在仓库之中。也就是说,如果我们想要建立项目,就得先建立仓库;有多个项目,就建立多个仓库。

  • issue:可以理解为“问题”,举一个简单的例子,如果我们开源一个项目,如果别人看了我们的项目,并且发现了bug,或者感觉那个地方有待改进,他就可以给我们提出issue,等我们把issue解决之后,就可以把这些issue关闭;反之,我们也可以给他人提出issue。

  • fork:可以理解为“拉分支”,如果我们对某一个项目比较感兴趣,并且想在此基础之上开发新的功能,这时我们就可以fork这个项目,这表示复制一个完成相同的项目到我们的 GitHub 账号之中,而且独立于原项目。之后,我们就可以在自己复制的项目中进行开发了。

  • pull request:可以理解为“提交请求”,此功能是建立在fork之上的,如果我们fork了一个项目,对其进行了修改,而且感觉修改的还不错,我们就可以对原项目的拥有者提出一个pull请求,等其对我们的请求审核,并且通过审核之后,就可以把我们修改过的内容合并到原项目之中,这时我们就成了该项目的贡献者。

  • merge:可以理解为“合并”,如果别人fork了我们的项目,对其进行了修改,并且提出了pull请求,这时我们就可以对这个pull请求进行审核。如果这个pull请求的内容满足我们的要求,并且跟我们原有的项目没有冲突的话,就可以将其合并到我们的项目之中。当然,是否进行合并,由我们决定。

  • watch:可以理解为“观察”,如果我们watch了一个项目,之后,如果这个项目有了任何更新,我们都会在第一时候收到该项目的更新通知。

  • gist:如果我们没有项目可以开源或者只是单纯的想分享一些代码片段的话,我们就可以选择gist

Git和GitHub的绑定

在创建好仓库之后,如果我们想把我们的代码上传到GitHub上,如果只是单纯的保存到Git仓库里,在GitHub中我们是搜不到我们的项目的,所以我们需要通过SSH将两者绑定在一起。

在通过ssh公钥来授权之前,我们先打开Git-bash输入ssh来检查电脑中是否有安装ssh key。对于 Linux 和 Mac 系统,其是默认安装SSH的,而对于 Windows 系统,其默认是不安装 SSH 的,不过一般在安装了 Git Bash后,其也应该自带了 SSH. 可以通过在 Git Bash 中输入ssh命令,查看是否有安装。

如图,这就表示本机中已经安装有SSH了,接着我们输入ssh-keygen -t rsa 命令,表示我们指定 RSA 算法生成密钥,然后敲三次回车键,期间不需要输入密码,之后就会生成两个文件,分别为id_rsa 和id_rsa.pub,即密钥id_rsa 和公钥id_rsa.pub,两者都为隐藏文件,默认生成在以下目录:

  • Linux 系统:~/ .ssh

  • Mac 系统:~/ .ssh

  • Windows 系统:C: \Documents and Settings\username\\.ssh

  • Windows 10 ThinkPad: C:\Users\think\.ssh

密钥和公钥生成之后,通过cat ~/.ssh/id_rsa.pub 命令复制公钥,接着把公钥的内容添加到 GitHub,这样我们本地的密钥GitHub 上的公钥才可以进行匹配,授权成功后,就可以向 GitHub 提交代码了。

如图,我们点击右边的Setting进入界面,点击SSH and GPG key是,点击new SSH keys,将我们的公钥内容复制进去:

这里可以只复制内容,不用在title里输入内容,直接点击Add SSH keys 就可以完成Git和Github的交互了。

上传、下载代码

先打开项目,点击code,把项目地址复制好:

接着我们在我们需要上传的代码文件夹里进入Git Bash,正常来说第一次应该先输入git init进行初始化,由于答主已经初始化过了,所以没有进行这部操作。然后我们依次输入git add .(把该文件夹下的内容添加到仓库里);git commit -m "Initial commit"(提交更改到仓库内,引号里填写的是这次提交内容的备注);git remote add origin https://github.com/<username>/<repo>.git (添加GitHub仓库作为远程仓库,origion后面改为我们上面复制的仓库链接);git push -u origin master(将代码上传到仓库中,如果是第一次上传到GitHub,可能会提示你输入GitHub的用户名和密码),如下:

相比之下,要想在GitHub下载代码就简单多了,只需要点击download zip就可以了。

代码合并

在进行开发的过程中,我们很容易遇到合并代码的情况,例如我们从 master 分支拉取了一个 feature 分支,当我们开发到一段时间之后,可能需要将 master 的代码合并到我们当前的 feature 分支之中。而在这期间,很可能我们在两个分支都做了提交,那么这种情况该怎么操作呢?

如果使用git merge命令,假设我们在feature分支提交了三次commit,master则提交了两次,我们运行git merge --no-ff master,意思是把master的代码合并feature,--no-ff参数是为了保留mastercommit的提交记录。

如果使用rebase命令,即运行git rebase feature,就会把feature的代码合并到master分支处,注意,这里的合并跟之前的区别在于,以代码上commit的提交作为区分,合并后相当于是master先做了两次commit,再到feature做了三次commit。假如在合并的过程中,某个 commit 遇到了冲突,则需要我们先解决该冲突,然后才能继续进行合并操作,一般使用git add +冲突文件名将当前冲突标记为已解决,然后使用git rebase --continue命令继续合并操作。

以上就是使用Git和GitHub的一些基本操作,以后答主遇到一些刚需的命令和操作也会在这里进行补充更新。

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

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

相关文章

【C++】哈希表封装 unordered_map 和 unordered_set 的实现过程

C语法相关知识点可以通过点击以下链接进行学习一起加油&#xff01;命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与QueuePriori…

攀拓(PAT)- 程序设计(乙级)2024年春季考试

题目来源&#xff1a;https://pintia.cn/market/item/1767454903977603072 B-1 题目要求 2024 这个数字&#xff0c;可以由 n n n个互不相同的正偶数和 m m m个互不相同的正奇数组合出来吗&#xff1f;本题就请你回答这个问题。 输入格式&#xff1a; 输入在一行中给出一个…

STM32 BootLoader 刷新项目 (九) 跳转指定地址-命令0x55

STM32 BootLoader 刷新项目 (九) 跳转指定地址-命令0x55 前面我们讲述了几种BootLoader中的命令&#xff0c;包括获取软件版本号、获取帮助、获取芯片ID、读取Flash保护Level。 下面我们来介绍一下BootLoader中最重要的功能之一—跳转&#xff01;就像BootLoader词汇中的Boot…

VTK知识学习(2)-环境搭建

1、c方案 1.1下载源码编译 官网获取源码。 利用Cmake进行项目构建。 里面要根据实际使用的情况配置相关的模块哟&#xff0c;这个得你自行研究下了。 CMAKEINSTALLPREFIX--这个选项的值表示VTK的安装路径&#xff0c;默认的路径是C:/Program Files/VTK。该选项的值可不作更…

Chrome(谷歌浏览器中文版)下载安装(Windows 11)

目录 Chrome_10_30工具下载安装 Chrome_10_30 工具 系统&#xff1a;Windows 11 下载 官网&#xff1a;https://chrome.google-zh.com/&#xff0c;点击立即下载 下载完成&#xff08;已经下过一遍所以点了取消&#xff09; 安装 解压&#xff0c;打开安装包 点击下一步…

如何在算家云搭建Aatrox-Bert-VITS2(音频生成)

一、模型介绍 ‌ Aatrox - Bert -VITS2 模型是一种基于深度学习的语音合成系统&#xff0c;结合了 BERT 的预训练能力和 VITS2 的微调技术&#xff0c;旨在实现高质量的个性化语音合成。 二、模型搭建流程 1. 创建容器实例 进入算家云的“应用社区”&#xff0c;点击搜索找到…

232转485模块测试

概述 常用的PLC一般会有两个左右的232口&#xff0c;以及两个左右的485口&#xff0c;CAN口等&#xff0c;但是PLC一般控制的设备可能会有很多&#xff0c;会超出通讯口的数量&#xff0c;此时我们一般会采用一个口接多个设备&#xff0c;这种情况下要注意干扰等因素&#xff0…

静态数组类型无法用“=“给整个静态数组赋值

基础知识&#xff1a; 什么是静态数组类型&#xff1f; 在 C 中&#xff0c;静态数组是一种在编译时大小固定的数组。这意味着一旦声明&#xff0c;静态数组的大小就不能改变。 ------ 你可以声明一个静态数组并选择性地初始化它&#xff1a; int arr[10]; // 声明一个包…

使用 Python 调用云 API 实现批量共享自定义镜像

本文介绍如何通过 Python SDK 调用 API 接口&#xff0c;通过子用户批量共享云服务器自定义镜像。若您具备类似需求&#xff0c;或想了解如何使用 SDK&#xff0c;可参考本文进行操作。 前提条件 已创建子用户&#xff0c;并已具备云服务器及云 API 所有权限。 创建子用户请…

【旷视科技-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

GISBox VS ArcGIS:分别适用于大型和小型项目的两款GIS软件

在现代地理信息系统&#xff08;GIS&#xff09;领域&#xff0c;有许多大家耳熟能详的GIS软件。它们各自具有独特的优势&#xff0c;适用于不同的行业需求和使用场景。在众多企业和开发者面前&#xff0c;如何选择合适的 GIS 软件成为了一个值得深入思考的问题。今天&#xff…

【Spring】Spring Web MVC基础入门~(含大量例子)

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;什么是Spring Web MVC 1&#xff1a;Servlet 2&#xff1a;总结 二&#xff1a;MVC …

数组类算法【leetcode】

704. 二分查找 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 二分查找 用于有序数组中&#xff0c;没有重复的数组。…

24/11/7 算法笔记 PCA主成分分析

假如我们的数据集是n维的&#xff0c;共有m个数据(x,x,...,x)。我们希望将这m个数据的维度从n维降到k维&#xff0c;希望这m个k维的数据集尽可能的代表原始数据集。我们知道数据从n维降到k维肯定会有损失&#xff0c;但是我们希望损失尽可能的小。那么如何让这k维的数据尽可能表…

wxWidgets布局管理及XRC界面使用解惑

wxWidgets布局&#xff0c;通常就是wxBoxSizer&#xff0c;当然还有别的Sizer&#xff0c;就像Qt中的Layout一样&#xff0c;各种布局管理类。只是如今的wxWidgets尚未发展起来&#xff0c;一般其他的你用的比较少&#xff0c;因为这个最简单&#xff0c;最容易布局&#xff0c…

【开源免费】基于SpringBoot+Vue.JS医院管理系统(JAVA毕业设计)

博主说明&#xff1a;本文项目编号 T 062 &#xff0c;文末自助获取源码 \color{red}{T062&#xff0c;文末自助获取源码} T062&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

【循环引用及格式化输出】

垃圾回收机制 当一个值在内存中直接引用跟间接引用的量为0时&#xff0c;&#xff08;即这个值没有任何入口可以找到它&#xff09;那么这个值就会被清空回收♻️&#xff0c;释放内存空间&#xff1b; 列表在内存中的存储方式 1&#xff09;引用计数的两种方式 x "ea…

31.7K+ Star!AgentGPT:一个在浏览器中运行的Agent

AgentGPT 简介 AgentGPT[1] 是一个可以让你在浏览器中组装、配置和部署自主AI代理的项目。你可以为你的自定义AI命名,并让它去实现任何你想象中目标。它将尝试通过思考要执行的任务、执行它们并从结果中学习来达成目标。 项目特点 主要特点 自主AI代理:用户可以自定义AI并赋…

【大模型】通过Crew AI 公司的崛起之路学习 AI Agents 的用法

AI 技术的迅猛发展正以前所未有的速度重塑商业格局&#xff0c;而 AI Agents&#xff0c;作为新一代的智能自动化工具&#xff0c;正逐步成为创新型公司的核心力量。在本文中&#xff0c;我们将探讨如何利用 AI Agents 构建一家 AI 驱动的公司&#xff0c;并详细了解 Crew AI 创…

【Uniapp】Uniapp Android原生插件开发指北

前言 在uniapp开发中当HBuilderX中提供的能力无法满足App功能需求&#xff0c;需要通过使用Andorid/iOS原生开发实现时&#xff0c;或者是第三方公司提供的是Android的库&#xff0c;这时候可使用App离线SDK开发原生插件来扩展原生能力。 插件类型有两种&#xff0c;Module模…