git管理工具_深度学习应掌握哪些 Git 开发技术?

本文介绍了Git作为版本控制系统的基本使用,包括如何初始化仓库、提交文件、查看历史记录、回退版本、管理远程仓库、创建与合并分支以及标签管理。强调了Git在团队协作和版本管理中的重要性,特别是其分布式特性。通过实例展示了如何连接GitHub,以及如何创建、合并和删除分支。此外,还提到了标签作为易记版本标识的用途。建议学习者参考廖雪峰的Git教程以深入了解。
摘要由CSDN通过智能技术生成

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

460d6f1f8eed57924f2146239ed39482.png

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

7c83c211d3c07e0da8c903e735b89f9d.png

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

版本

文件名

用户

说明

日期

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"

操作效果如下:

c98c7f74ee70b2ef6c821bbaa2399908.png

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

d7a973ba1cf5f3c8ba1a498916152954.png

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

git reset --hard 4bfa7
360ed3051012f0d0b09510bf05b7a409.png

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

远程仓库

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

61ddcaa90403df9cc6f30e8bdc1094b4.png

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

8c50b961f92868dbb137ae4f0ed33b0c.png

就可以将本地的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
f449ab25ff834ef36ce6ddb0858aa2e8.png

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

7e4b1e5f7b62106c69edc9513d2ca9cf.png

分支管理

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

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

git checkout -b devgit branch
f50d25c6acc0daf684d137ff5bc74f01.png

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

0e25941f0f933a9300b85c7ee83e64f4.png

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

git checkout master

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

git merge dev
3f501bf1a30eaf59f78f278d218420b1.png

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

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

标签管理

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

2da8fb66273dafaa9dab1082f19b1644.png

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

git tag v1.0
3b590991e0305ecd37c8bf1683749b3f.png

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

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

5039474c1c50242c3e29a5ef5cee298a.png

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

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

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

Git命令脑图:

5c9a50ba5afe5cfbb69516e56b0508d9.png

还有一份Git命令小抄表:

4efa9c8f924c719e6571ff019323f770.png

参考资料:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值