数据科学家为什要用Git?怎么用?

简介: 也许你在别的地方听说过Git。也许有人告诉过你,Git只适合软件开发人员。如果你是数据科学家,那么Git其实对你很重要。本文作者希望能够通过经验分享让你了解Git的重要性,以及如何在你的数据科学工作中使用它。

摘要:也许你在别的地方听说过Git。也许有人告诉过你,Git只适合软件开发人员。如果你是数据科学家,那么Git其实对你很重要本文作者希望能够通过经验分享让了解Git的重要性,以及如何在的数据科学工作中使用它。

什么是Git

Git是一个分布式版本控制系统,用于在软件开发期间跟踪源代码的更改。看看维基百科给出的这个定义,好像Git专门是为软件开发人员而设计。实际上,Git是当今世界上使用最广泛的现代版本控制系统,它是以分布式的协作方式为项目(开源或商业)做出了伟大的贡献。除了分布式版本控制系统之外,Git的还考虑了性能、安全性和灵活性。现在你已经了解了Git是什么,但是你脑海中的问题可能是,“如果我是做数据科学项目的人,它与我的工作有什么关系?”以前我也一样不能理解Git的重要性直到我开始在现实工作环境中,我才发现它时如此重要!

为什么是Git

我们来谈谈为什么?一年前,我决定学习Git。我Github分享并发布了我的代码,这是我在CERN的论文项目。虽然很难理解Git中常用的术语(git-add、commit、push、pull等),但我知道这在数据科学领域很重要,使我的数据科学工作比以往任何时候都更加充实。

所以我保持学习状态,并坚持“committing”。当我加入我目前的公司时,我在Git方面的经验就派上了用场,因为Git是跨不同团队进行代码开发和协作的主要方式。更重要的是,当的组织遵循敏捷软件开发框架时,Git尤其有用,在该框架中,Git的分布式版本控制使整个开发工作流更加高效、快速且易于适应变化。那么什么是版本控制呢?版本控制是一个系统记录一个文件或一组文件随时间的变化,以便以后可以调用特定的版本。比如说,你是一个数据科学家,与一个团队合作,在这个团队中你和另一个数据科学家在构建机器学习模型的时候,对同一个特征进行工作。如果特征做了一些更改并上传到远程存储库,并且这些更改与主分支合并,那么项目现在变成了1.1版。另一位数据科学家也对版本1.1的相同功能进行了一些更改,新的更改现在与主分支合并。模型变成1.2版。在任何时候,如果的团队发现版本1.2在发布期间有一些错误,他们随时可以调用以前的版本1.1,这就是版本控制的美妙之处。

作为数据科学家如何使用Git

我们已经讨论过什么是Git及其重要性。现在的问题归结为:作为数据科学家如何使用Git作为数据科学家你不需要成为一个Git领域的专家。关键是理解Git技术的工作流程以及如何在日常工作中使用Git。准确地说,我在这里使用的是Git Feature Branch Workflow,它通常被开源和商业项目使用。如果你想更多地了解这里使用的术语,点击这里进行了解

Git Feature Branch Workflow

Feature Branch Workflow像一个中央存储库,master分支代表正式的项目历史记录。开发人员每次开始处理一个新特性时,都会创建一个新的分支,而不是直接提交到他们的本地主分支上。新的分支可以(也应该)推送到中央存储库。在这种情况下,可以在不修改master分支的情况下与其他开发人员共享一个该分支

在开始执行任何操作之前,请键入

git remote -v
以确保工作区指向要使用的远程存储库。

1、从主分支开始,创建一个新分支

git checkout master
git pull
git checkout -b branch-name

如果总是维护和更新主分支,则切换到本地主分支,并将最新的提交和代码提取到本地主分支。假设希望创建一个本地分支,向代码中添加一个新功能,并稍后上传到远程存储库。一旦将最新的代码更新到本地master分支,我们就创建并checkout出一个名为branch-name的新分支,所有更改都将在此本地分支上进行。这意味着你本地的master分支不会受到任何影响。

2、更新、添加、提交并将更改推送到远程存储库

git status
git add <your-files>
git commit -m 'your message'
git push -u origin branch-name

上面我们做了很多操作,让我们详细了解它。一旦发生了一些更新,将新的操作add到本地分支,并且希望将该操作上传到远程分支,以便合并到远程主分支。git status将输出你对文件的所有更改(跟踪或未跟踪)。在使用git commit-m“your message”提交消息更改之前,将使用git add <your files>决定要暂存哪些文件。

在此阶段,的更改仅显示在本地分支中。为了使的更改显示在BitBucket上的远程分支中,需要使用git push -u origin branch-name命令进行提交。此命令将分支推送到中央存储库,并且-u表示将其添加为远程跟踪分支。在设置了跟踪分支之后,可以在没有任何参数的情况下调用git push,以自动将新的功能分支推送到BitBucket上的中央存储库。

3、创建pull请求

现在已经成功地添加了一个新功能并推送到远程分支。为自己的贡献感到骄傲,希望在将远程分支与远程主分支合并之前得到团队成员的反馈。在该分支合并到主分支之前,让其他团队成员有机会对其进行审查。可以在BitBucket上创建pull请求。现在,的团队成员已经查看了的代码,并决定在代码可以合并到主代码库-master分支之前,需要进行一些其他更改。

git status
git add <your-files>
git commit -m 'your message'
git push

现在你可以按照与之前相同的步骤进行更改、提交并最终将更新推送到中央存储库。一旦使用了git push,的更新将自动显示在pull请求中。如果其他人已将目标更改为所接触的同一代码,则会发生合并冲突,这在工作中很常见。可以在这里看到如何解决合并冲突。一旦一切顺利完成,这些功能将会合并到master分支中。

当我第一次开始学习Git时,我感到非常沮丧,因为我仍然没有真正理解工作流。这也是写这篇文章的主要原因之一,它真正分解并在更高层次的理解上向解释工作流程。因为我相信,对工作流程中发生的事情有一个清晰的了解将使学习过程更加有效。

本文由阿里云云栖社区组织翻译。

文章原标题《Why Git And How To Use Git As A Data Scientist》,译者:黄小凡,审校:袁虎。
文章简译,更为详细的内容,请查看原文

相关文章
|
2月前
|
存储 开发工具 git
|
2月前
|
开发工具 git
【GIT 第二篇章】GIT常用命令
Git常用命令涵盖初始化、状态管理、提交、分支处理、远程操作等关键流程。`git init`启动本地仓库,`git clone`下载远程仓库。通过`git status`和`git diff`检查工作状态与差异。利用`git add`暂存文件,`git commit`保存更改。借助`git branch`、`git checkout`、`git merge`和`git rebase`管理分支。使用`git fetch`、`git pull`和`git push`同步远程仓库。通过`git reset`、`git revert`和`git checkout`实现版本回退。
56 0
|
5天前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
无论团队项目还是个人开发,掌握 Git 命令都是必备技能。本文介绍 Git 的基本概念与命令,如初始化仓库 (`git init`)、添加文件 (`git add`)、提交更改 (`git commit`)、检出分支 (`git checkout`)、合并分支 (`git merge`) 等,还分享了高级技巧如查看差异 (`git diff`)、撤销提交 (`git revert`)、修复合并冲突 (`git mergetool`) 和使用别名简化命令 (`git config --global alias.ci commit`)。
|
8天前
|
机器学习/深度学习 Shell 开发工具
Python使用管道执行git命令报错|4-7
Python使用管道执行git命令报错|4-7
|
7天前
|
存储 Linux 开发工具
Git基础命令,分支,标签的使用【快速入门Git】
本文详细介绍了Git版本控制系统的基础概念和常用命令,包括工作区、暂存区和版本库的区别,文件状态的变化,以及如何进行文件的添加、提交、查看状态、重命名、删除、查看提交历史、远程仓库操作和分支管理,还涉及了Git标签的创建和删除,旨在帮助读者快速入门Git。
Git基础命令,分支,标签的使用【快速入门Git】
|
9天前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
本文介绍 Git 的核心概念,如仓库、提交、分支与合并,并提供了常用命令,如初始化仓库 (`git init`)、提交更改 (`git commit -m &quot;Commit message&quot;`)、拉取 (`git pull`) 和推送 (`git push`) 等。此外,还分享了高级技巧,如撤销提交 (`git revert &lt;commit&gt;`)、交互式暂存 (`git add -i`) 和使用别名简化命令 (`git config --global alias.ci commit`) 等,帮助开发者提升效率。无论是初学者还是资深开发者,都能从中受益。
|
16天前
|
开发工具 git 开发者
GIT命令的综合总结
Git的学习曲线可能比较陡峭,但熟练掌握这些命令后,你将能够更加高效地管理和协作你的项目。希望这份指南能帮助你成为Git的高效用户。
42 7
|
5天前
|
开发工具 git
深入理解Git中的git pull和git fetch命令
深入理解Git中的git pull和git fetch命令
12 0
|
2月前
|
存储 开发工具 git
Git常用命令汇总
这是Git命令速查表,涵盖从版本库创建、文件添加与提交、状态查询到分支管理、标签创建及撤销操作的各项常用指令。同时介绍了如何通过GitHub进行代码仓库的创建与同步,帮助用户高效地使用Git进行版本控制和协作开发。
Git常用命令汇总
|
2月前
|
存储 安全 开发工具
掌握这5个Git高级命令,让你的开发效率飞速提升!
掌握这5个Git高级命令,让你的开发效率飞速提升!