也许你在别的地方听说过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分支的情况下与其他开发人员共享一个该分支。

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

<span style="color:#f8f8f2"><code class="language-none">git remote -v</code></span>

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

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

<span style="color:#f8f8f2"><code class="language-none">git checkout master
git pull
git checkout -b branch-name</code></span>

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

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

<span style="color:#f8f8f2"><code class="language-none">git status
git add <your-files>
git commit -m 'your message'
git push -u origin branch-name
</code></span>

上面我们做了很多操作,让我们详细了解它。一旦发生了一些更新,就将新的操作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分支之前,需要你进行一些其他更改。

<span style="color:#f8f8f2"><code class="language-none">git status
git add <your-files>
git commit -m 'your message'
git push
</code></span>

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

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

原文链接
本文为云栖社区原创内容,未经允许不得转载。

数据科学家为什要用Git?怎么用?相关推荐

  1. 作为数据科学家应该知道的11件事

    背景 在我们举办的聚会期间,我们见到了很多朋友.从数据科学领域完全的菜鸟到专家,在同一个屋檐下,每个人都发出自己的疑惑.然而,当我们面对这群朋友--很大比例的这部分人(包括一些专家),一件事情显得尤为 ...

  2. 数据更改后推送_合格的数据科学家,这些Github知识必须了解

    全文共2270字,预计学习时长5分钟 图片来源:Unsplash/HackCapital摄 版本控制经验已逐渐成为所有数据科学家的必要能力.版本控制可以帮助数据科学家更好地做团队工作.促进项目协作.共 ...

  3. 数据科学家们,请补齐你的短板,如何提升R语言编程能力

    前言 这个世界每天都在源源不断地生产数据,而人们尤其是商界往往希望从这些数据中获取到有价值的信息.而这一点也促使很多试图从数据中提取有用信息的数据科学家们(或被叫做数据分析师.数据挖掘者等等听起来不错 ...

  4. Kaggle 发布首份数据科学从业报告 | 不及美国同行1/3,中国数据科学家平均年薪约3万美元

    Kaggle 是互联网上最著名的数据科学竞赛平台之一,今年 3 月 8 日,这家机构被谷歌收购,6 月 6 日又宣布用户数量超过了 100 万人.互联网创业方兴未艾,人工智能的浪潮又接踵而来,而贯穿其 ...

  5. 数据科学家 数据工程师_数据科学家应该对数据进行版本控制的4个理由

    数据科学家 数据工程师 While working in a software project it is very common and, in fact, a standard to start ...

  6. 我是如何用6个月,从0编程经验变成数据科学家的?

    来源 | medium 编译 | 武明利 责编 | Carol 出品 | CSDN云计算(ID:CSDNcloud) 我叫Kate,刚从长达 8 年的学习和艰苦的工作中走出来,没有任何预兆.你可能想问 ...

  7. 你与数据科学家只差这26条python技巧

    戳蓝字"CSDN云计算"关注我们哦! 作者 | Peter Gleeson 来源 | Python数据科学 编译 | wLsq Python是目前世界上最流行的编程语言之一.因为: ...

  8. os.popen read()报编码错误_数据科学家易犯的十大编码错误,你中招了吗?

    选自 Medium 作者:Norm Niemer 机器之心编译 参与:李诗萌.王淑婷 数据科学家比软件工程师擅长统计,又比统计学家擅长软件工程.听起来牛逼轰轰,事实却是,许多数据科学家有统计学背景,却 ...

  9. 翻译|给数据科学家的10个提示和技巧Vol.1

    原文:10 Tips And Tricks For Data Scientists Vol.1 译者:赵西西 原博客简介:Predictive Hacks是与数据科学相关的在线资源中心.该博客是由一群 ...

最新文章

  1. 解决apt-get /var/lib/dpkg/lock-frontend 问题
  2. Android IOC模块,利用了Java反射和Java注解
  3. VTK:模型之Delaunay3D
  4. java.lang.unsatisfiedlinkerror:_java.lang.UnsatisfiedLinkError: 的问题
  5. WebService入门介绍
  6. 重新下载python以前下的包还用重新安装吗_强制“pip”在切换到其他Python二进制文件后重新编译以前安装的包(numpy)...
  7. 高德地图的标志放大_点标记-覆盖物-教程-地图 JS API | 高德地图API
  8. springboot maven打包pom配置
  9. java 程序找错_JAVA程序找错~
  10. jquery on()动态绑定元素的的点击事件无反应的问题记录
  11. 机器学习- 吴恩达Andrew Ng Week7 知识总结Support Vector Machines
  12. 2021 常用的 7 款 MySQL 客户端工具
  13. 小马哥----高仿机部分6735芯片机型的root方法浅析 高仿三星Galaxy S6 A228_4G刷机root
  14. mov格式如何转换成mp4?详细步骤教程
  15. Java——通过Java代码从ftp服务器下载文件
  16. Flutter Tabbar 自定义选中下标 自定义Indicator
  17. java企业号开发教程_详解java微信企业号开发之开发模式的开启步骤
  18. 鸿蒙系统更新支持哪些手机,已经发布的鸿蒙系统都支持哪些手机型号呢?快来看看你的手机支持不!...
  19. 计算机网络专项练习题
  20. 洛谷 P2895 [USACO08FEB]Meteor Shower S C++ BFS 广搜

热门文章

  1. 如何学习c语言 零基础20天学会C语言
  2. 【LeetCode笔记】48. 旋转图像(Java、矩阵、偏数学、原地算法)
  3. linux 重定向 不换行,Ada:重定向到stdout时省略换行符(测试Put)
  4. 希捷银河声音大_每日观影之银河守门员( )
  5. 数据分析转软件测试,(转)性能测试用户模型(三):基础数据分析、场景数据...
  6. mysql随机选择记录表_Mysql表中取随机记录
  7. 用注水实验法验证勾股定理
  8. 读博和不读博的理由是什么?
  9. 我们要的是社会主义!
  10. 太厉害了!3小时34分!53岁院士施一公完成人生首马