目录
[1 常用的代码托管平台](#1 常用的代码托管平台)
[2 GitHub平台详解](#2 GitHub平台详解)
[2.1 github简介](#2.1 github简介)
[2.2 Github基本功能介绍](#2.2 Github基本功能介绍)
[3 GitHub创建远程仓库](#3 GitHub创建远程仓库)
[3.1 创建远程仓库](#3.1 创建远程仓库)
[3.2 创建远程仓库别名](#3.2 创建远程仓库别名)
[4 推送本地分支到远程仓库](#4 推送本地分支到远程仓库)
[5 拉取远程库到本地](#5 拉取远程库到本地)
[6 克隆远程库到本地](#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 **(代码空间):**是一种基于云的开发环境,允许开发者在浏览器中直接进行代码编写、调试和运行,无需在本地配置复杂的开发环境,方便快捷,尤其适合移动办公或快速启动项目开发。
Copilot **:**GitHub 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会自动完成代码的拉取、本地库的初始化和远程库别名的创建。克隆完成后,你会在当前目录下看到一个与远程仓库同名的文件夹,里面包含了远程仓库的所有代码和提交历史。
通过这个操作,你可以直接开始在本地进行开发,并且可以使用其他 Git 命令来推送你的修改到远程仓库或者拉取远程仓库的最新代码到本地。