git guest查看不了代码_深度学习应掌握哪些 Git 开发技术?

2023-05-16

Git作为当前世界上最好的分布式版本管理工具,从事深度学习少不了写代码,写代码自然有版本控制的问题。特别是在生产环境下,和组里的同事一起协作进行深度学习项目开发时,版本控制和多人协作必然少不了。深度学习算法工程师,咱们的title是工程师,是工程师就必须要有基本的开发能力。所以,Git作为一项必要的开发工具,我们应掌握哪些技术要点呢?

在深入到具体的Git技术之前,我们先来简单了解一下Git。前面也说了Git是世界上最好的分布式版本控制系统(没有之一),那么什么是版本控制系统?相信大家都有过写毕业论文的经历:有时候想删除一段文字,但又觉得可能还会用到,于是就把包含这段文字的版本又另存为一个word,时间一长,各种另存为的新word越来越多,等到你想找回包含某段文字的版本的时候,你的毕业设计文件夹已经变成下面这样。没办法,只能一个个点开看。

假如要是有这么一个软件,能够帮助我们记录每次修改,并且还能让同学帮我协作修改论文格式,这个软件用起来效果就像下面这样:

版本

文件名

用户

说明

日期

1

毕业设计.docx

小鲁

添加了表索引

5/15 22:38

2

毕业设计.docx

小王

修改了论文格式

5/17 09:22

3

毕业设计.docx

小鲁

修改了文献综述

5/19 23:02

咱们写代码就跟写毕设一样的道理,也需要进行版本控制和多人协作。现在Git就能帮助我们完成这些事情。下面我们就从版本管理、远程仓库、分支管理和标签管理等4个方面来看看我们应掌握哪些技术。

版本管理

Git安装很简单,这里就略过。现在我们有个用keras测试谷歌colab Tesla T4 GPU训练mnist速度的.py文件。我们先把.py文件所在的文件夹变成git可管理仓库:

git init

现在我们把.py文件提交到Git。提交过程有两步:第一步是先通过git add命令把文件提交到暂存区,然后再通过git commit命令把文件提交到版本库:

git add example.pygit commit -m "first commit"

操作效果如下:

现在我们对.py文件进行多次修改,并且每一次都提交到了版本库。现在我们用git log命令来查看历史纪录:

现在我们要回到某个版本,比如说回到上一个版本,查看上图中每一个版本的版本号,通过git reset命令我们做到:

git reset --hard 4bfa7

本质上来说,Git管理的是修改而非文件。除了简单的版本回退之外,我们还可以利用Git进行修改撤销、删除文件等版本管理功能。

远程仓库

如果仅仅是进行版本管理,那Git与其他版本管理工具也并没有多少特别之处。Git与SVN等版本管理工具一大优势就是Git除了本地版本库之外,还可以连接远程库从而实现分布式管理。Git远程库就是大家都知晓的GitHub,GitHub可以为Git本地仓库提供代码托管服务,只要注册GitHub账号,就可以免费获得Git远程仓库。

本地Git和GitHub连接是需要设置SSH的,这里简单略过。设置好后,在GitHub上创建同名字的仓库:

就可以将本地的Git仓库推送到GitHub上:

git remote add origin https://github.com/luwill/kera_mnist.gitgit push -u origin master

除了向远程库推送本地版本库之外,我们还可以从远程库克隆代码仓库到本地:

git clone https://github.com/luwill/Python-100-Days.git

除了GitHub之外,我们也可以使用Gitlab或者Gogs作为团队开发版本管理工具。

分支管理

Git另一项强大的功能就是可以创建分支并进行分支管理。Git可以把我们每次提交串成一条线,而初始化的分支也就是master分支,也叫主分支。但一般来说,团队开发时我们不在主分支上干活,而是创建一个dev的分支来进行开发任务。

创建一个dev分支并切换到该分支,然后用git branch查看当前分支:

git checkout -b devgit branch

我们在dev分支上对.py文件进行修改后提交:

然后我们切换回master主分支:

git checkout master

但此时我们可以发现刚刚修改的内容并没有看到。这是因为我们刚刚时在dev分支上做的修改,master分支并没有涉及到提交点。现在我们需要把dev分支合并到master分支里:

git merge dev

合并之后我们也可以选择删除dev分支。

这便是Git的分支管理功能。当然我们只是演示了最简单的部分,在进行分支合并的时候也有可能出现合并冲突,这时候需要手动解决冲突才能继续合并。还有一些比如说在Bug分支进行Bug修改,在Feature分支上开发新功能和多人协作等这里不做过多展开。

标签管理

我们利用git进行提交的时候都会有commit号:

通过commit号我们可以找到历史版本。但commit号都是一串数字字母组合,不易表述和记忆。Git对此也有代替方法,那就是标签管理。我们可以对每个版本打上简洁的标签:

git tag v1.0

这个标签是默认打在最近一次commit上的。我们也可以根据commit号进行指定来打标签。

通过标签来查看版本的历史信息:

除了以上操作之外,我们也可以删除标签或者将标签推送到GitHub上。

以上便是深度学习开发者应掌握的一些基本的Git开发技术。完整的Git教程,推荐大家参考廖雪峰老师的官方网站:

https://www.liaoxuefeng.com/wiki/896043488029600

Git命令脑图:

还有一份Git命令小抄表:

参考资料:

https://www.liaoxuefeng.com/wiki/896043488029600

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git guest查看不了代码_深度学习应掌握哪些 Git 开发技术? 的相关文章

  • PHP中__FUNCTION__与__METHOD__的区别

    你知道php中 FUNCTION 与 METHOD 的区别吗 xff1f 本文通过一个小例子 xff0c 为大家介绍下二者的区别 xff0c 有兴趣的朋友可以参考下 PHP中 FUNCTION 与 METHOD 的区别 xff0c 主要在以
  • linux设置登录超时,登录失败策略

    1 登录超时 在vi etc profile 末尾加上 如果有就修改 没有就添加 export TMOUT 61 600 单位为秒 10分钟 2 登录失败 在 etc pam d system auth 加上 deny 61 3错误次数 u
  • SecureCRT分屏显示

    Tab右键 或者 Session Manager右键 gt Send to New Tab Group
  • WPF DataGrid多表头/列头,多行头,合并单元格,一列占据多行

    原文 WPF DataGrid多表头 列头 xff0c 多行头 xff0c 合并单元格 xff0c 一列占据多行 先上效果图 xff1a 思路说明 xff1a 这是两个DataGrid xff0c 没有嵌套 xff0c 位置和高度保持一致
  • cookie和session同与异

    面试和工作中有时候碰到cookie和session的同异 xff0c 现在小结如下 xff1a 首先看cookie cookie增删改查 xff1a http www w3school com cn js 1 cookie产生 识别用户 用
  • 阿里云Redis配置公网连接的注意点

    本篇文章是对官方文档中关于配置redis外网链接的补充 xff0c 请大家参考 Redis公网连接 前提条件 要保证进行外网链接配置的这个ecs是能够连接上redis实例的 最简单的办法是在ecs上能够使用ping命令进行验证 xff0c
  • echarts图例legend选中状态动态设置 selected

    功能前端页面展示 xff0c 需要对所有指标的图例默认选中状态只显示前两个 xff0c 其他指标的图例状态默认为灰色 1 因为所有的指标为动态加载的 xff0c 因此图例legend选中状态也要通过js进行动态加载 xff0c 从官方的文档
  • 如何给run()方法传参数

    实现的方式主要有三种 1 构造函数传参 2 成员变量传参 3 回调函数传参 问题 xff1a 如何实现处理线程的返回值 xff1f 1 主线程等待法 xff08 优点 xff1a 实现起来简单 xff0c 缺点 xff1a 需要等待的变量一
  • devC++代码格式化对齐的快捷键

    devC 43 43 代码格式化对齐的快捷键是ctrl 43 shift 43 a ctrl 43 左右键可以使光标移动一个单词的距离 shirt 43 左右键可以选中光标左右的一个字符 转载于 https www cnblogs com
  • PostgreSQL 使用PG_Rman进行物理备份

    背景 在Oracle下我们可以使用rman进行物理备份 xff0c 支持数据库的全量 增量 归档的备份模式 而PostgreSQL作为开源数据库 xff0c 近些时间来也一直向商业版数据库看齐 xff0c 也推出了开源功工具pg rman
  • 引用计数的智能指针的实现与思考

    摘要 引用计数在软件开发中是一项非常重用的技术 xff0c 它可以说是无处不 xff0c 我们在不知不觉中都在和它打交道 xff0c 比如 Windows上的COM和Handle xff0c Mac上的ref句柄 xff0c 脚本语言中的垃
  • test

    1 overrides the s4 notdlg class items as display none lt script type 61 34 text javascript 34 gt var fV4UI 61 true lt sc
  • keil5 --工程创建

    一 xff0c 文件夹介绍 首先去官网过去其他地方获取到官方提供的标准库文件 下面这个我是在官网进行下载的 我们在打开keil的时候会弹出一个在线下载的框 xff08 这个框这里先不做说明 xff0c 后面在继续讲解 xff09 xff0c
  • gnome-tweak-tool设置gnome参数, 修改CENTOS7桌面图标大小

    GNOME Tweak Tool 是 GNOME 3 的优化配置工具 xff0c 为我们带来 GNOME Shell 扩展安装功能 xff0c 方便Linux用户对 Gnome Shell 进行一些调整 主要功能有 xff1a 安装 xff
  • linux判断usb进程命令,一种在Linux系统下审计USB设备历史使用情况的方法与流程...

    本发明涉及计算机审计技术领域 xff0c 具体涉及一种在Linux系统下审计USB设备历史使用情况的方法 背景技术 xff1a 如今 xff0c 在linux系统中 xff0c 对于USB设备的插入拔出事件 xff0c 系统自身是不带有审计
  • 又是一年年终总结

    起 这篇年终总结草稿是在12 03起的 xff0c 那是突然之间感觉到今年不大平常 xff0c 可以考虑写个年终总结来记录一下 xff0c 但是谁能料到今年真的是太不平常了 xff0c 到了12月中 xff0c 公司就解散了 xff0c 所
  • 远程连接windows系统提示:其他用户要远程登录,需要通过远程桌面服务进行登录的权限......

    解决方法 xff1a 服务器内部 通过在 本地组策略编辑器 中 计算机配置 gt Windows设置 gt 安全设置 gt 本地策略 gt 用户权限分配 进行相关调试即可 删除即可 转载于 https blog 51cto com 1377
  • 【封装那些事】 缺失封装

    缺失封装 没有将实现变化封装在抽象和层次结构中时 xff0c 将导致这种坏味 表现形式通常如下 客户程序与其需要的服务变种紧密耦合 xff0c 每当需要支持新变种或修改既有变种时 xff0c 都将影响客户程序 每当需要在层次结构中支持新变种
  • RxJava 和 RxAndroid 五(线程调度)

    对rxJava不了解的同学可以先看 RxJava 和 RxAndroid 一 基础 RxJava 和 RxAndroid 二 xff08 操作符的使用 xff09 RxJava 和 RxAndroid 三 xff08 生命周期控制和内存优化
  • PHP版本切换

    前言 php是为了快速构建一个web页面而迅速被大家广为接受的开源语言 xff0c 通过不断发展已经有了很多的php开源系统 xff0c 满足了目前大部分用户的站点需求 1995年初php诞生到现在已经存在多个版本 xff0c 并且每个版本

随机推荐