如何准备现有项目并将其上传到 GitHub?

已完成

在这一单元中,我们讨论将项目上传到 GitHub 的重要注意事项。

为什么要上传到 GitHub?

有大量文章颂扬 GitHub 的优点,但说服你加入已经超出了本模块的范围。 但是,在本模块中,我们回顾了在规划上传时需要考虑的主题上下文中的一些主要优势。

版本控制

GitHub 只使用 Git,它可以说是最佳的版本控制系统。 然而,Git 非常复杂,并且可能会创建一些复杂方案来使用团队可能不熟悉的代码。 分支和拉请求是使用 Git 的开发人员日常生活中的基本部分,因此了解何时以及如何有效地使用它们是在 GitHub 上取得成功的必要条件。 你的团队有必要先熟悉 GitHub 流,这样你便可立即着手开始。

将代码保留在云中

许多项目代码仍然专门存储在开发人员计算机上。 上传到 GitHub 后,你便将代码迁移到了 GitHub 的云平台,团队成员可以从任何位置轻松访问代码。 这项更改提供了一个很好的机会,你可以检查团队的策略,以确定在版本控制中保留的文件和数据的类型。 作为最佳做法,你应该假设你提交到 GitHub 的任何内容都可能被泄露。 因此,请确保不包括敏感数据,例如 API 密钥、密码或其他包含类似信息的文件。

注意

GitHub 提供了公共和专用存储库,以及对存储库不同部分的精细访问控制。 这样,你便可控制项目对谁可见,以及给定用户可执行哪些操作。

协作

GitHub 通过问题、拉取请求和代码评审等功能为团队协作提供了出色的支持。 但是,GitHub 流可能与团队当前习惯的做法不同。 最好考虑一下团队将如何适应 GitHub,以及你是否应保留任何现有流程。

如果项目是一个允许外部参与者的开放源代码项目,则为了最大限度地提高权益,GitHub 就是最好的选择。

上传到 GitHub

计划注意事项

在执行向 GitHub 上传之前,最重要的事情是考虑是否需要保留任何超出当前状态的源代码的内容。 例如,你可以使用电子表格或项目管理软件来跟踪你计划修复的 bug。 对迁移这些项目的支持因平台而异,通常可从社区项目中获得。 本模块不涉及迁移该类型的数据。

处理当前存储在项目中的二进制文件

最佳做法是将 GitHub 存储库限制为仅存储生成项目所需的文件。 避免提交大型二进制文件,例如生成工件。 对于电子表格和演示文稿之类的二进制文件,更适合在知道如何正确地为这些文件提供服务并对它们进行版本设置的门户上进行跟踪。 如果你需要对大型二进制文件进行版本设置,请考虑使用 Git 扩展 Git LFS(大文件存储)。

创建重要的 Git 文件,如 .gitignore

Git 支持 .gitignore 文件,有助于实施版本控制文件策略。 这些文件定义了用于从源代码管理跟踪中排除文件和文件夹的搜索模式。 以下简单示例以递归方式从源代码管理跟踪中排除任何名为 Bin 或 bin 的文件夹及其内容

[Bb]in/

了解有关忽略文件的详细信息。 还可以在 存储库中查看为各种平台提供的入门 .gitignore 文件集合。

GitHub 项目中还经常使用其他一些文件来向存储库使用者和参与者说明不同的策略。 即使项目是专用项目并且仅供有限的受众访问,明确地阐明这些策略仍然非常有用。 虽然这些文件都不是必需的,但这里还是列出了一些常见的文件。

文件 目的
README.md 目录的登陆页面。 在 GitHub 上查看其目录时,将呈现此页面。
LICENSE.md 此文件包含一个许可证,代码是依据该许可证提供的。
CONTRIBUTING.md 说明用户应如何为项目做出贡献,例如拉取请求预期。
SECURITY.md 说明项目的安全策略。 此文件为想要提交敏感的安全相关代码或反馈的用户提供指导,这些代码或反馈在经过处理之前不应公开披露。

详细了解为运行状况参与设置项目

将项目上传到 GitHub

一旦你的存储库已准备就绪、可供上传,请在 GitHub 上创建一个存储库。 创建后,导航到 GitHub 存储库的“代码”选项卡。 此视图为你提供几种上传项目代码的方法。

Screenshot of importing code to a GitHub repository.

建议使用 git 客户端或 git 友好工具上传源。 或者,可以使用“创建新文件”链接手动上传文件。 最终,你可能会发现使用 git 客户端是管理更改、分支等内容的最佳方法。