版本控制经验已逐渐成为所有数据科学家的必要能力。版本控制可以帮助数据科学家更好地做团队工作、促进项目协作、共享工作并帮助其他数据科学家重复相同或类似的过程。
即使是独立工作的数据科学家,在并入当前项目之前,能够先回滚更改或先对某个分支进行更改,并测试此更改不会终止任何项目内容也是非常有用的。
本文将介绍以下内容:
1. 什么是Github?
2. 为什么数据科学家需要使用Github?
3. 创建知识库
4. 分支
5. 合并申请功能
1. 什么是Github?
Github是最著名和最广泛使用的版本控制平台之一。GitHub使用一个名为Git的应用程序将版本控制应用于代码。项目文件被远程存储在一个被称为知识库(repository)的中心位置。每次在本地机器上进行更改并推送到Github时,远程版本都会被更新,并记录该提交的存储。如果要在提交之前回滚到项目的早期版本,则此次记录就可以让使用者执行此操作。
此外,由于项目文件是远程存储的,任何其他有访问权限的人都可以下载此文件并对项目进行更改。分支的概念,本质上意味着你对完全独立的项目做了一个临时的复制,它意味着你可以先在分支里进行更改,而不必担心终止任何东西。如果你正在做一个项目,而项目工作中的某个特性依赖于代码工作,那么这一点就尤其重要了。
2. 为什么数据科学家需要使用Github?
数据科学家需要使用GitHub的原因与软件工程师的原因基本相同——为了协作、“安全”地对项目进行更改,以及随后的追踪和回滚更改。
传统上,数据科学家不必非要使用GitHub,因为在通常情况下,将模型投入项目的过程(在此过程中版本控制变得至关重要)会被移交给软件或数据工程团队。然而,系统中有一个日益增长的趋势,即让数据科学家更容易写出代码并将其运用到产品中——参见H20.ai和谷歌云人工智能平台(Google Cloud AI Platform)之类的工具。因此,数据科学家能熟练使用版本控制变得越来越重要。
3. 创建知识库
图片来源:pexels.com/@divinetechygirl
现在简要介绍如何使用Github和Git从命令行中执行最常见的操作。如果还没有账户,需要先注册一个(完全免费)。
传送门:https://github.com/
若要从头创建存储库,请访问以上链接并单击“New”按钮。
接下来需要为项目输入名称,并选择是将此项目设为公共项目还是私有项目。
接下来,选中“Initializethis repository with a README”,然后单击“Create repository”。
现在可以添加和更改知识库中的文件了。要从命令行中执行此操作,首先需要按照说明下载并安装Git。
说明传送门:
https://git-scm.com/downloads
要在本地处理项目,首先还需要克隆知识库。如果想克隆别人的项目来进行操作,也要遵循这个步骤。
cd my-directorygit clonehttps://github.com/rebeccavickery/my-repository.git
可以通过单击“Cloneor download”按键找到仓储的链接。
新目录现在将出现在当前项目目录中,其名称与知识库相同。这是项目的本地版本。
4. 分支
分支可以让使用者复制知识库、在复制的知识库里进行更改并在合并到主项目之前测试它们是否正常工作。最好的做法是始终在分支上进行更改,而不是在主项目上工作。在创建分支之前,最好检查本地项目是否是和远程知识库库一样的最新版本。可以通过输入以下内容来检查状态:
git status
如果你的并不是最新版本,可以简单地输入“gitpull”。
要建立并检查一个分支,输入以下内容。
git branch my-branchgit checkout my-branch
现在就可以进行更改,在合并分支和主项目之前,它们不会影响远程仓储。现在可以更改README.md文件,并完成提交和合并此次更改的过程。
在你喜欢的文本编辑器中打开README.md文件并进行任何更改。这里使用Sublime Text(
https://www.sublimetext.com/)并只在文件中添加一行。
5. 合并申请功能
在协作项目中工作的最佳做法是使用合并申请功能(pullrequests)。合并申请功能是允许使用者或其他人在将更改合并到主版本之前查看所做出的更改的过程。在打开合并申请功能之前,需要添加并提交更改。
git add .git commit -m "change to README.md"git push —set-upstream origin my-branch
只需要在第一次创造新分支时添加分支:“set-upstreamorigin my-branch”。然后就能在远程知识库中看见此消息。
单击“compare and pullrequest” ,然后再单击“create pull request”。
此时,如果在项目中与其他人或团队协作,可能会要求其他人去检查更改。他们可以添加评论,当所有人对更改满意时,就可以合并申请功能了。
这时,此改变将被并入主项目中。
如果完成了在此分支上的工作,最好点击“delete branch”按钮删除它