订阅
纠错
加入自媒体

一文总结GitHub使用指南

2020-06-01 10:21
磐创AI
关注

总览Git和GitHub是任何想要编程的数据科学专业人员的必备工具在此面向初学者的综合指南中,可以了解到Git和GitHub的相关内容和意义介绍。“一个人能做的事情很少,但我们一起,就可以做很多事情。” ——海伦·凯勒听说过版本控制吗?当我开始编程时,我还没听说过这个工具。尤其是在为各种数据科学任务编写代码时头晕目眩,那时还没有意识到编写高效代码的重要性以及管理整个代码库的必要性。直到进入这个行业时,才明白版本控制的重要性。我学到的第一件事是清楚了Git和GitHub的意义。虽然一直很了解它们(经常使用它们来克隆Google Research和其他顶级数据科学组织的开源代码),但从未真正理解它们的真正用途。

版本控制之美对我来说是一个启示。我可以创建一个远程项目,让我所有的团队成员同时独立地处理不同的功能,但在一天结束时仍然有一个稳定的运行代码,这种方式让我着迷。瞬间,我发现了一个解决在协作项目时曾经面临的问题的灵丹妙药。我非常高兴与你分享这篇有关Git和GitHub的文章。我们将介绍这两种工具的工作方式以及如何使用它们使你的数据科学项目更容易跟踪。作为数据科学家,你需要对这些工具有扎实的了解。你不仅会面临有关此问题的面试问题,而且你将在数据科学领域中非常依赖Git和GitHub。

如果你正在与一个项目的其他数据科学家合作(这种情况经常发生),那么有时你必须更新一段代码或一个功能。Git和GitHub将在这里帮助你创建更好的工作流程。无论你进行什么更改,你都可以轻松地将其提供给所有协作者。如果你输入有误,也可以随时回到以前的版本目录。

什么是Git?什么是GitHub?熟悉Git术语Git入门初始化存储库配置Git了解如何在Git中提交文件查看日志在GitHub上上传到远程存储库将Git远程添加到你的存储库使用Push克隆GitHub存储库分支与合并使用Pull为世界贡献力量尾注让我们深入了解Git和GitHub的世界!

什么是Git?Git(https://git-scm.com/) 是一种广泛使用的版本控制系统(Version Control System ,VCS),可让你跟踪对代码所做的所有修改。这意味着,如果新功能引起了任何错误,都可以轻松回到以前的版本。但是Git不只是VCS,它还是分布式VCS。这意味着项目的每个协作者都将拥有在本地计算机上所做更改的历史记录,因此人们可以处理项目的不同功能,而不必与托管该项目的远程版本服务器进行通信。你可以轻松地将对项目所做的任何更改与远程副本合并,这将大大提高工作效率。由于它是用C语言编写的,所以速度和性能从一开始就在Git中根深蒂固。除此之外,在实际保存对项目的任何更改之前,Git还提供了大量缓存区。如果你想了解更多有关Git的信息,请访问其官方网站(https://git-scm.com/about/branching-and-merging) ,找到问题的答案!

什么是GitHub?GitHub(https://github.com/) 是一个广泛使用的版本控制平台,其核心是Git,它使你可以托管项目的远程版本,所有协作者都可以从中访问它。不仅你自己的团队成员,而且GitHub的任何成员都可以为你的代码做出贡献(当然,如果你选择接受所做的更改)。我们将在本文中详细讨论这些。GitHub就像一个社交平台,你可以在其中找到大量带有其代码的开源项目。在该平台上可以找到所有新兴技术。你可以在惊人的项目上进行合作,并就自己的贡献进行讨论!这将是你找到的最佳开源平台,也是数据科学家的梦想!你可以在GitHub看看我们最好的开源数据科学项目,每月都收集在这里:(https://www.analyticsvidhya.com/blog/tag/github-repositories)在GitHub上可以做很多事情,让我们开始吧。熟悉Git术语存储库(Repository)

Repository或Repo是一个文件夹,其中包含所有项目文件和每个文件所做的修订历史。在项目的整个生命周期中,将使用项目的两个存储库:远程存储库和本地存储库:远程存储库包含你的项目,任何人从任何地方都可以访问它。你的远程存储库位于GitHub服务器上,任何人都可以访问它们本地存储库是驻留在本地计算机上的远程存储库的副本。你所做的所有更改将保存在本地存储库中。除非你将它们推送到远程存储库,否则你的同伴开发人员将无法看到它们克隆(Cloning)git clone < Repo-URL >克隆意味着在本地计算机上创建远程存储库的副本。现在,你可以在本地计算机上对项目进行更改。提交(Commit)git commit -m “< commit message >”提交更改时,将对文件所做的更改保存在repo中。在本地计算机上使用Git时,使用commit命令会将文件保存在本地存储库中,要在远程存储库中进行这些更改,你可以使用push命令。推送(Push)git push origin < branch >Push命令允许你将本地存储库上的所有更改传输到远程存储库上。传输之后,所有其他开发人员都可以访问你所做的更改,并且他们可以更新其本地存储库。拉取(Pull)git pull < remote-repo >如果push意味着将代码传输到远程存储库,则Pull命令允许你将所有更改从远程存储库传输到本地存储库。因此,开发人员将其推送到远程存储库的任何更改,都可以使用pull命令将其转移到本地存储库中。你还需要了解一些术语,但现在不需要。我们将在本文的后半部分详细介绍它们。现在,让我们创建我们的第一个GitHub存储库!Git入门你应该做的第一件事是在系统上下载Git。对已经准备好的人表示敬意!其他人,请转到此处(https://git-scm.com/downloads) 为你的操作系统下载Git。这很简单,你可以很快完成。现在,Git程序旨在与Unix风格的命令行环境一起使用。Linux和macOS已经在其本地命令行终端中为此提供了一个接口。因此,我在本文中使用的所有git命令都可以在其终端上正常工作。但是,Windows具有完全不同的命令行界面,称为命令提示符,它不是Unix风格的命令行环境,那么我们该怎么办?不用担心,你在安装Git时已经安装了Git Bash。Git Bash是Windows的命令行界面,可以模拟Git命令行,因此只要你在Git Bash中实现Git命令,就可以了。我将交替使用术语“终端”或“命令行”来指代macOS和Linux用户的命令行环境,以及Windows用户的Git Bash。我要你做的下一件事是创建一个项目文件夹,你将在其中保存本地存储库,然后按照以下步骤在该项目文件夹中打开终端:打开终端或Git Bash键入命令cd,这意味着更改目录(或文件夹)导航到项目文件夹所在的位置,但不要打开它现在,只需将文件夹拖放到终端内即可,这会将终端导航到你的项目目录/工作目录

准备好开始使用Git!初始化存储库存储库或存储库是一个文件夹,其中包含所有项目文件和对每个文件进行的修订。你在上面创建的项目目录不是存储库,一个存储库需要使用git init命令(https://git-scm.com/docs/git-init) 初始化。

完成此操作后,将在项目/工作存储库中创建一个隐藏的.git文件夹,这是你本地的Git存储库。如果看不到它,可能是因为它是隐藏的,你需要更改设置中的某些属性以使其可见,但是也不用担心,即使你没有看到它,它仍然存在。Git会将你对项目文件所做的所有更改存储在此文件夹中。

配置Git但是在我们对存储库进行任何更改之前,我们希望Git知道我们是谁。我们可以使用git config命令来做到这一点。使用此设置,我们可以设置用户名和用户电子邮件地址。现在,每次我们提交时,Git都会保存此信息,以便你知道谁进行了更改。git config — global user.namegit config — global user.email

如果使用–global选项,则Git将为系统中的所有存储库保存此信息,如果只希望为该特定存储库保存信息,则可以将其省略。了解如何在Git中提交文件现在,你可以开始构建项目并将文件添加到项目目录。我的项目是用不同的编程语言编写“ Hello world”,因此我将为此目的在我的项目目录中添加一些文件,你也应该对项目目录执行相同的操作,因为它现在为空。创建文件并将其添加到项目目录后,你可以使用git add <file-name>将它们添加到本地Git存储库中。

如果要一次添加多个文件,请使用git add。

我们完成了吗?提交更改的命令不是用别的命令吗?你是绝对正确的!我们尚未将文件添加到本地存储库。我们刚刚告诉Git,已经进行了一些更改,我们希望将这些更改保存在下一次提交/保存中,到目前为止,这些“added”文件位于一个名为“ 暂存区”的位置。暂存区是工作目录和本地repo之间的一个中间位置,在将所做的任何更改提交到repo之前,都可以在这里进行检查。

1  2  3  4  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

人工智能 猎头职位 更多
扫码关注公众号
OFweek人工智能网
获取更多精彩内容
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号