Git代码管理工具 — 5 GitHub远程仓库

目录

1 常用的代码托管平台

2 GitHub平台详解

2.1 github简介

2.2 Github基本功能介绍

3 GitHub创建远程仓库

3.1 创建远程仓库

3.2 创建远程仓库别名

4 推送本地分支到远程仓库

5 拉取远程库到本地

6 克隆远程库到本地


1 常用的代码托管平台

前面我们已经知道了Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。

gitHub( 地址:https://github.com/ )是一个面向开源及私有软件项目的托管平台,许多开源项目都选择在 GitHub 上托管,拥有庞大的开发者社区。

码云(地址: https://gitee.com/ )是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快。

GitLab (地址: https://about.gitlab.com/ )是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务,一般用于在企业、学校等内部网络搭建git私服。

2 GitHub平台详解

2.1 github简介

GitHub是一个基于Git的代码托管平台,是全球最大的开源社区之一,由于其方便易用的特点,受到广大程序员的青睐。使用GitHub,你可以将自己的代码托管在云端,并且可以与其他人协作开发。GitHub他就是一个远程仓库,远程仓库通俗的理解就是一个可以保存自己代码的地方,在实际开发当中一个项目往往是有多个人来共同协作开发完成的,那么就需要一个统一代码保存的地方,而GitHub就是起到一个共享和汇总代码的作用。使用Github的优势主要包括以下几个方面:

版本控制:Github可以对代码进行版本控制,可以方便地管理代码的历史记录,并可以回滚到以前的版本,方便代码维护和管理。

协作开发:Github可以实现多人协作开发,多人可以在同一个代码库中共同工作,方便代码的开发和维护。

社交化:Github是一个开源社区,用户可以分享自己的代码、文档等,也可以参与其他开发者的项目,与其他开发者交流并建立社交关系。

公开透明:Github是一个公开透明的平台,用户可以公开自己的代码库并让其他人查看、下载和修改,这有助于促进知识的共享和传播。

托管服务:Github提供了免费的代码托管服务,并提供了云端代码备份、部署、测试等功能,可以大大简化开发流程。

2.2 Github基本功能介绍

Issues(问题):用于项目的问题跟踪和管理。开发者可以在这里报告软件中的错误(bug)、提出新功能建议、进行讨论等。

Pull requests(拉取请求):这是 GitHub 协作开发的核心功能之一。当开发者对一个项目进行了修改(例如修复了一个 bug 或添加了新功能),可以通过创建拉取请求,将自己的修改提交给项目的维护者或其他开发者进行审核。审核通过后,这些修改可以被合并到主项目中,实现代码的集成和协作开发。

Projects(项目):用户可以创建项目看板,通过添加卡片、列等方式来组织和跟踪项目的任务、进度、里程碑等信息,方便团队协作和项目管理。

Discussions(讨论):是一个专门用于社区交流和讨论的区域。用户可以围绕项目展开各种话题的讨论,分享经验、提出想法、解答疑问等。

Codespaces(代码空间):是一种基于云的开发环境,允许开发者在浏览器中直接进行代码编写、调试和运行,无需在本地配置复杂的开发环境,方便快捷,尤其适合移动办公或快速启动项目开发。

CopilotGitHub Copilot 是一款人工智能辅助编程工具,它可以根据上下文和代码注释自动生成代码建议,帮助开发者提高编程效率,减少重复性工作。

Explore(探索):在这里用户可以发现 GitHub 上的热门项目、趋势话题、推荐的存储库等内容,帮助用户发现新的有趣的项目和社区动态,拓宽视野,寻找灵感和合作机会。

Marketplace(市场):是一个集成各种第三方工具和服务的平台,例如持续集成 / 持续部署(CI/CD)工具、代码质量检测工具、文档生成工具等。

Repositories(存储库):显示了用户自己的存储库或用户关注的存储库。

“+” 新建:包含新建存储库、导入存储库、新建代码空间、新建要点、新建组织、新建项目。

Issues: Issues 页面,用于查看和管理项目的问题。

Pull requests:进入 Pull requests 页面,用于处理拉取请求相关的操作。

通知: Projects 页面,用于管理项目的任务和进度等。

账户:用户的个人头像或账户相关的快捷入口,点击后可能会进入用户的个人主页或账户设置页面。

这些元素是 GitHub 界面的重要组成部分,方便用户快速访问和操作各种功能,提高开发和协作的效率。

进入到某个仓库,查看一下页面信息。

顶部导航栏:包含了常见的功能选项,如 “Code”(代码)、“Issues”(问题)、“Pull requests”(拉取请求)、“Actions”(操作)、“Projects”(项目)、“Security”(安全)、“Insights”(洞察)、“Settings”(设置)。

名称与权限:存储库名为 “C-Advanced-Way”,权限为 “Private”(私有),表示只有被授权的用户才能访问该存储库。

关注与分支信息:显示有 1 个用户 “Unwatch”(取消关注)该存储库,当前分支为 “master”,有 1 个分支,0 个标签。

“Go to file”搜索框:用于快速查找文件;

“Add file”(添加文件):用于向存储库添加新文件;

“Code”(代码):涉及代码仓库操作,主要克隆方式有 HTTPS、SSH(需配密钥)、GitHub CLI, GitHub Desktop 客户端打开仓库、用 Visual Studio 打开仓库以及将仓库内容下载为 ZIP 压缩文件

3 GitHub创建远程仓库

3.1 创建远程仓库

首先,登录GitHub并点击右上角的加号,选择“New repository”。在弹出的页面中,填写仓库的名称、选择公开或私有,并点击“Create repository”按钮即可完成远程仓库的创建。

在创建完成后,GitHub会为你提供HTTPS和SSH的链接,这将是你与远程仓库交互的方式。对于HTTPS链接,它提供了简单的身份验证方式,而SSH链接则需要设置公钥和私钥,提供了更安全的交互方式。

3.2 创建远程仓库别名

创建远程仓库别名是为了方便之后的Git操作,可以将远程仓库的链接和一个别名关联在一起。这样,在之后的操作中,我们就可以使用别名来代替远程仓库的链接,简化了命令的书写和操作的流程。

在本地项目的根目录下,使用命令“git remote add 别名 仓库链接”来为远程仓库设置一个别名。其中,“别名”是你自己定义的名称,可以是任何你喜欢的名称,通常会选择“origin”作为默认的远程仓库别名。而“仓库链接”则是你在GitHub上创建的远程仓库的链接,可以是HTTPS或SSH链接。

举个例子,如果你的GitHub远程仓库链接为“https://github.com/Qinong/C-Advanced-Way.git”,你可以使用以下命令将其设置为别名为“origin”的远程仓库:

git remote add origin https://github.com/Qinong/C-Advanced-Way.git

这样,之后的Git操作中,就可以使用“origin”代替远程仓库的链接了。例如,使用“git push origin master”将本地分支“master”的代码推送到远程仓库。

需要注意的是,一个本地仓库可以关联多个远程仓库,每个远程仓库可以使用不同的别名。如果需要查看当前本地仓库关联的远程仓库和别名,可以使用命令“git remote -v”查看。

4 推送本地分支到远程仓库

当你在本地完成了代码的修改并提交到本地仓库后,可以使用命令“git push 别名 分支”将本地分支的代码推送到远程仓库中。这样其他协作者就可以获取到你的最新代码了。具体步骤如下。

1)提交本地库:确保你已经将本地的修改提交到本地仓库。可以使用以下命令将修改提交到本地仓库。

git add .

git commit -m "提交描述"

2)远程仓库设置别名:确保你已经为远程仓库设置了别名。如果没有设置,可以使用以下命令为远程仓库设置别名。

git remote add origin 仓库链接

3)确认分支:确保你当前所在的分支是你想要推送的分支。可以使用以下命令查看当前所在分支。

git branch

如果不在需要推送的分支上,可以使用以下命令切换到需要推送的分支。

git checkout 分支名

4)推送远程库:最后,使用以下命令将本地分支的代码推送到远程仓库中。

git push 别名 分支

举个例子,如果你想将本地的分支“feature”推送到远程仓库的“origin”别名下,可以使用以下命令:

git push origin feature

这样,你的本地分支的代码就会被推送到远程仓库中,其他协作者就可以获取到你的最新代码了。

5 拉取远程库到本地

当其他协作者在远程仓库中提交了新的代码,你可以使用命令“git pull 别名 分支”将远程仓库中的代码拉取到本地,保持代码的同步。具体步骤如下。

1)确认拉取分支:确保你当前所在的分支是你想要拉取代码的分支。可以使用以下命令查看当前所在分支。

git branch

如果不在需要拉取代码的分支上,可以使用以下命令切换到需要拉取代码的分支。

git checkout 分支名

2)拉取到本地:使用以下命令将远程仓库中的代码拉取到本地。

git pull 别名 分支

举个例子,如果你想将远程仓库的“origin”别名下的“main”分支的代码拉取到本地,可以使用以下命令。

git pull origin main

这样,远程仓库中的最新代码就会被拉取到本地,保持了本地和远程仓库代码的同步。如果有冲突需要解决,Git会提示你进行合并操作。完成拉取后,你就可以继续进行本地开发或者将自己的修改推送到远程仓库中。

6 克隆远程库到本地

当你是新加入一个项目时,可以使用命令“git clone 仓库链接”将远程仓库的代码克隆到本地。这个操作会自动完成代码的拉取、本地库的初始化和远程库别名的创建,让你可以直接开始开发而无需额外的配置。具体步骤如下。

1)打开命令行或终端,并进入你想要存放项目的目录。

2)使用以下命令克隆远程仓库到本地:

git clone 仓库链接

举个例子,如果远程仓库的链接为 https://github.com/username/repository.git,可以使用以下命令:

git clone https://github.com/username/repository.git

执行上述命令后,Git会自动完成代码的拉取、本地库的初始化和远程库别名的创建。克隆完成后,你会在当前目录下看到一个与远程仓库同名的文件夹,里面包含了远程仓库的所有代码和提交历史。

通过这个操作,你可以直接开始在本地进行开发,并且可以使用其他 Git 命令来推送你的修改到远程仓库或者拉取远程仓库的最新代码到本地。

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

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

相关文章

UDP 广播组播点播的区别及联系

1、网络IP地址的分类 组播地址是分类编址的IPv4地址中的D类地址,又叫多播地址,他的前四位必须是1110,所以网络地址的二进制取值范围是11100000~11101111对应的十进制为 224~~239。所以以224~239开头的网络地址都是组播地址。 组播地址的功能…

mysql 学习2 MYSQL数据模型,mysql内部可以创建多个数据库,一个数据库中有多个表;表是真正放数据的地方,关系型数据库 。

在第一章中安装 ,启动mysql80 服务后,连接上了mysql,那么就要 使用 SQL语句来 操作mysql数据库了。那么在学习 SQL语言操作 mysql 数据库 之前,要对于 mysql数据模型有一个了解。 MYSQL数据模型 在下图中 客户端 将 SQL语言&…

10个非常基础的 Javascript 问题

Javascript是一种用于Web开发的编程语言。JavaScript在网络的客户端上运行。 根据MDN,JavaScript(通常缩写为JS)是一种轻量级的,解释性的,面向对象的语言,具有一流的功能,并且最著名的是Web页面…

把 PVE 下的机械硬盘(非SSD系统盘)分配给虚拟机使用

PVE 挂在硬盘 参考 Ubuntu 24.04 LTS 空闲硬盘挂载到 文件管理器的 other locations。 在 PVE shell 中根据上面教程挂在硬盘 新建分享目录 参考 Proxmox VE(PVE)添加硬盘做存储 虚拟机新增硬盘 虚拟机 关机,按下图新增硬盘 新增硬盘…

制作动态菜单

动态菜单的说明 什么叫做动态菜单?动态菜单就是根据用户属于不同的角色,每个角色还有不同的菜单,左侧菜单栏会有不同的显示 前端加载流程 menu.js 修改/src/api/menu.js中的请求地址,如下所示: // 获取菜单 export…

C语言数组详解:从基础到进阶的全面解析

在C语言中,数组是一种基本的数据结构,用于存储多个相同类型的数据。数组的引入使得C语言能够高效地存储和操作大量数据。在任何一个C语言程序中,数组都发挥着极其重要的作用。无论是在算法实现、数据存储、还是在复杂程序的设计中&#xff0c…

什么是COLLATE排序规则?

在当今数字化世界中,数据的整理、比较和排序是至关重要的。在数据库管理和编程语言中,我们经常需要对字符串进行排序,以展示或处理信息。为了实现这一点,各种系统和工具提供了排序规则,其中COLLATE排序规则就是其中的一…

【数据结构进阶】红黑树超详解 + 实现(附源码)

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:数据结构 目录 前言 一、红黑树介绍 二、红黑树原理详解 三、红黑树的实现 1. 节点定义 2. 红黑树类型定义及接口声明 3. 红黑树的插入(重点&a…

计算机网络 (57)改进“尽最大努力交付”的服务

前言 计算机网络中的“尽最大努力交付”服务是网络层的一种数据传输方式。这种服务的特点是网络层只负责尽力将数据报从源端传输到目的端,而不保证数据传输的可靠性。 一、标记与分类 为数据分组打上标记: 给不同性质的分组打上不同的标记&#x…

ThinkPHP 8模型与数据的插入、更新、删除

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…

【数据可视化】全国星巴克门店可视化

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

密码无关认证:金融机构如何解决密码问题

密码安全问题,依然是金融行业面临的重大挑战。尽管密码简单易用,但许多金融机构仍然依赖这种方式进行身份认证。幸运的是,随着技术的发展,密码无关认证已经成为一种更加安全、便捷的选择,它能够为数字银行带来更好的用…

【Redis】持久化机制

目录 前言: RDB 触发RDB持久化方法有俩种: 1.手动触发 2.自动触发 RDB文件的优缺点: AOF: AOF工作机制:​编辑 ​编辑重写机制: 前言: Redis是一个内存数据库,将数据存储在内存中&…

Vue基础(2)

19、组件之间传递数据 组件与组件之间不是完全独立的&#xff0c;而是有交集的&#xff0c;那就是组件与组 件之间是可以传递数据的 传递数据的解决方案就是 props ComponentA.vue <template><!-- 使用ComponentB组件&#xff0c;并传递title属性 --><h3>…

Java操作Excel导入导出——POI、Hutool、EasyExcel

目录 一、POI导入导出 1.数据库导出为Excel文件 2.将Excel文件导入到数据库中 二、Hutool导入导出 1.数据库导出为Excel文件——属性名是列名 2.数据库导出为Excel文件——列名起别名 3.从Excel文件导入数据到数据库——属性名是列名 4.从Excel文件导入数据到数据库…

08-ArcGIS For JavaScript-通过Mesh绘制几何体(Cylinder,Circle,Box,Pyramid)

目录 概述代码实现1、Mesh.createBox2、createPyramid3、Mesh.createSphere4、Mesh.createCylinder 完整代码 概述 对于三维场景而言&#xff0c;二位的点、线、面&#xff0c;三维的圆、立方体、圆柱等都是比较常见的三维对象&#xff0c;在ArcGIS For JavaScript中我们知道点…

DAY6,使用互斥锁 和 信号量分别实现5个线程之间的同步

题目 请使用互斥锁 和 信号量分别实现5个线程之间的同步 代码&#xff1a;信号量实现 void* task1(void* arg); void* task2(void* arg); void* task3(void* arg); void* task4(void* arg); void* task5(void* arg);sem_t sem[5]; //信号量变量int main(int argc, const …

19_PlayerPres持久化_创建角色窗口

创建脚本 编写脚本 using UnityEngine; //功能 : 角色创建界面 public class CreateWnd : WindowsRoot{protected override void InitWnd(){base.InitWnd();//TODO//显示一个随机名字} }创建角色窗口CreateWnd.cs应该在玩家点击 进入游戏 按钮后显示 所以在 登录窗口LoginWnd…

热更新杂乱记

热更新主要有一个文件的MD5值的比对过程&#xff0c;期间遇到2个问题&#xff0c;解决起来花费了一点时间 1. png 和 plist 生成zip的时候再生成MD5值会发生变动。 这个问题解决起来有2种方案&#xff1a; &#xff08;1&#xff09;.第一个方案是将 png和plist的文件时间改…

【2024年华为OD机试】 (C卷,100分)- 用户调度问题(JavaScriptJava PythonC/C++)

一、问题描述 问题描述 在通信系统中&#xff0c;有 n 个待串行调度的用户&#xff0c;每个用户可以选择 A、B、C 三种调度策略。不同的策略会消耗不同的系统资源。调度规则如下&#xff1a; 相邻用户不能使用相同的调度策略&#xff1a;例如&#xff0c;如果第 1 个用户选择…