GIT 是软件开发中用来跟踪项目(代码)变更的一个分布式版本控制系统。主要专注于开发人员之间加强协调,协作,速度和效率。
GITHub 是基于 Web 的托管服务,使用 GIT 进行版本控制。它提供了 GIT 的所有分布式版本控制和源代码管理的功能,还添加了更多计算机编码的功能。
下载和安装最新的版本:Windows 上 GIT 的安装程序
Gentoo
或者可以执行如下指令:
GIT 允许你在“仓库”中版本化管理项目。该仓库是基于 Web 的托管服务进行版本控制,和 GITHub一样。
你可以克隆仓库到你本地的机器,并且得到所有的文件和分支(我稍后会讲解更多关于分支的内容)。
例如,可以通过 SSH 克隆 fReecodecamp 的仓库,如下:
在做项目时,你可能会有不同的功能,并且有多个贡献者会做该项目及其功能。
分支允许你在 masteR 分支中使用相同的文件创建一个 “playgRound(游乐场)” 。你可以使用这个分支构建独立的功能、测试新功能、做重大改动、修复代码、写文档,或者在不中断的情况下尝试自己的想法,或者优化生产代码。
分支是 GIT 中的一个核心概念,在 GITHub 中也用于管理一个项目不同版本的工作流。masteR 分支始终是仓库中的默认分支,通常被认为是 “生产和可部署代码”。新分支如 passwoRdless-auth 或 RefactoR-sIGnup-ux 可以从 masteR 分支中创建。
如何克隆 GIT 分支
当你使用 gIT clone 指令克隆仓库时,请记住这会克隆分支和远程 HEaD 。默认情况下通常是 masteR 分支,并包括仓库中的所有其他分支。
所以当你克隆一个仓库时,你克隆了 masteR 分支和所有其他分支。这意味着你可以随意切换到另一个分支。
假设你在项目上的任务是开发一项功能,将无密码身份验证添加到用户仪表板。这个功能位于 passwoRdless-auth 分支上。
你不需要 masteR 分支,因为你的 “功能分支” 之后会被合并到 masteR 中。那么你如何克隆 passwoRdless-auth 分支,而无需获取所有其他分支的 “一堆你不需要的文件” ?
我创建了示例仓库来解释这一点。此仓库包含一个使用 nextJS 构建的简单博客,有四个虚拟分支机构:
在 nextjs 中,文件夹 pages/api 内的任何文件都被映射到 /api/* 路径,并被视为替代 page 的 aPI 端点。在我的仓库中,我在这个目录中创建了不同的虚拟 aPIs,以使每个分支都不同。
masteR 分支保存 pages/api/hello.js 文件,而 passwoRdless-auth 分支保存 pages/api/auth.js 文件。每个文件仅返回一个伪文本响应。在这里查看 masteR 分支的 aPI 响应(给你一个特别的消息)。
让我们克隆仓库:
我们可以访问此仓库中的所有分支,你可以在每个版本之间轻松切换,以查看每个版本及其文件。
当你克隆仓库时,你是从互联网或内部服务器上的 RemOTe 仓库提取数据。ORIGin 是你的 GIT 创建的别名,用于替换远程 URL(如果你愿意,你可以更改或指定其他别名)。
RemOTes/oRIGin/.. 分支指向从互联网克隆的源仓库,因此你仍然可以从源执行 pull/push 。
所以当你克隆 masteR 分支到你的机器上时, RemOTes/oRIGin/masteR 是 masteR 在网络上的源分支, masteR 是你本机的分支。因此,你将从 RemOTes/oRIGin/masteR 中 pull/push。
总的来说 RemOTe 是指向互联网上仓库的 URL,而 ORIGin 是这个远程 URL 的别名。
如何克隆一个指定的分支
现在从我们的演示仓库中克隆一个指定的分支。有两种方法克隆一个特定的分支。你可以:
方案一
或
这样,你就可以获取仓库中的所有分支,切换到你指定的分支,指定的分支成为本地分支用于 gIT push 和 gIT pull 。但你仍然从每个分支中获取了所有文件。这可能不是你想要的吧?
让我们测试看看:
这会自动将 passwoRdless-auth 配置为本地分支,但仍会跟踪其他分支。
方案二
或
这与方案一的操作相同,除了 –single-bRanch 选项,它是在 GIT 版本 1.7.10 及更高版本中引入的。这个选项允许你仅从指定的分支中获取文件而不获取其他分支。
让我们测试看看:
这会自动将 passwoRdless-auth 配置为本地分支,且只能跟踪此分支。
如果你执行 cd pages/api ,你会在 passwoRdless-auth 分支中找到之前设置的 auth.js 文件。
你可能无法使用互联网或没有足够的存储空间,但你需要在指定的分支中工作,或者你可能出于各种原因希望克隆具有有限文件的指定分支。幸运的是, GIT 为你提供了执行此操作的灵活性。锻炼你学到的新知识并尝试一下吧,还有更多的 “GIT” 知识去学习。
一次学习一个知识点,对吧✌?
原文链接: