Git对数据科学的介绍
数据科学和工程领域之间的互动越来越多,因为数据科学家正在处理生产系统并加入研发团队。我们希望让没有先前工程经验的数据科学家更容易理解核心工程最佳实践。
我们正在构建一本关于工程学科的手册,例如Git、Docker、云基础设施和模型服务,这些都是我们听到的数据科学从业者关注的主题。
Git介绍
Git是一个版本控制系统,用于跟踪源代码的变化。
没有版本控制系统,多人合作开发同一项目时会变得非常混乱。由于没有人追踪自己的修改,将修改合并成一个基本事实变得非常困难,解决潜在冲突也变得不可能。Git以及在其之上构建的更高级系统(如GitHub)提供了解决这个问题的工具。
通常,每个用户将一个中央仓库克隆到本地系统(称为“origin”或“remote”),然后各个用户将其再克隆到本地计算机(称为“local”或“clone”)。用户在将相关工作(称为“提交”)存储到计算机上后,将其完成的工作“推送”和“合并”回中央仓库。
Git和GitHub的区别
Git既是用于跟踪和合并源代码变化的基础技术,也是其命令行客户端(CLI)。
一个名为GitHub的在线平台是在Git技术之上创建的,旨在使其更简单。此外,它还提供了自动化、拉取请求和用户管理等功能。GitLab和Sourcetree是另外两个选择。
数据科学中的Git
在数据科学中,我们将使用一些模型和算法来分析数据,一个模型可能由多个人共同创建,这使得处理和同时更新变得困难,但是Git通过存储先前版本并允许多人在同一时间工作来简化所有这些。
让我们了解一些在开发人员中非常常见的Git术语。
术语
- Repository(存储库) - 一个项目的所有分支和提交所包含的“数据库”。
-
Branch(分支) - 存储库的替代状态或开发路线。
-
Merge(合并) - 将两个(或更多)分支合并为一个分支,其中一个是合并的定义。
-
Clone(克隆) - 将远程存储库本地复制的过程。
-
Origin(原始) - 本地克隆是从远程存储库制作的,被称为原始。
-
Main/Master(主/主分支) - 根分支的常见名称,也就是主要存储库的真相,包括“main”和“master”。
-
Stage(暂存) - 在这个阶段选择要包含在新提交中的文件。
-
Commit(提交) - 存储库中对文件进行的暂存修改的存储快照被称为“提交”。
-
HEAD(当前提交) - 本地存储库中当前提交的缩写。
-
Push(推送) - 将更改发送到远程存储库以供公开查看。
-
Pull(拉取) - 将其他人的更新添加到个人存储库的过程。
-
Pull Request(拉取请求) - 在将修改合并到主/主分支之前,使用拉取请求机制对其进行审查和批准。
正如我们上面讨论的那样,为此我们需要一些通常使用的命令,让我们在下面讨论它们。
- git init − 在本地计算机上创建一个新的代码库。
-
git clone − 开始编辑已经存在的远程代码库。
-
git add − 选择要保存的文件(暂存)。
-
使用 git status 命令显示已修改的文件。
-
git commit − 将选定的文件的副本存储为快照(提交)。
-
使用 git push 命令将保存的快照(提交)发送到远程代码库。
-
使用 git pull 命令将他人创建的最新提交合并到您的计算机中。
-
使用 git branch 命令创建或删除分支。
-
git checkout − 切换分支或撤销对本地文件的修改。
-
git merge − 使用git合并分支以创建单个分支或单个真理。
处理Git过程的顺畅规则
Git在实际项目中有许多优点,但在某些情况下用户需要小心地处理一些数据或步骤以确保安全或其他原因。
有一些规则可用于顺利处理上传到GitHub的项目的过程。
不要上传数据集
Git用于跟踪、管理和存储代码,但将数据集放在其中并不是一个好习惯。保持数据的追踪,有许多好的数据跟踪工具可用。
不要上传机密信息
由于Git上发布或上传的代码可能是私有的,并且用户可以使其成为公开的。但即使在Git上推送的代码或数据是私有的,因安全原因也不建议在其中放置密码等机密信息。
不要使用–force
虽然-force方法在各种情况下都可以使用,但大多数情况下不建议使用它,因为在将代码推送到Git时,如果出现错误,编译器或CLI将显示使用force方法将数据放在服务器上,但这不是一个好的方法。
进行清晰的小提交
初学者开发者可能对小提交不太熟悉,但建议进行小提交,因为它们能够清晰地展示开发过程,并有助于未来的更新。此外,编写良好且清晰的描述使得相同过程变得更加容易。
结论
Git是一种版本控制系统,用于跟踪源代码随时间的变化。没有版本控制系统,多人在同一个项目上的合作将会非常混乱。Git既作为跟踪和合并源代码更改的基础技术,也作为命令行客户端(CLI)。一个名为GitHub的在线平台建立在git技术之上,使其更简单。此外,它还提供自动化、拉取请求和用户管理等功能。