【Git】四、Git工作

一、Git创建仓库

  版本库:代码仓库(repository),可以理解为一个项目的目录,在这个项目的目录中Git对每个文件进行管理,记录每个文件的增删改查记录,并能够追踪历史,在需要的时候可以回退到某个“历史瞬间”。

  可以通过 Git init 命令来初始化代码仓库,将一个目录初始化为一个Git可以管理的仓库。

  

  也可以通过 Git clone <url> 将 <url> 中的代码仓库拷贝到本地。

二、基本操作

  基本操作按照操作流程来介绍,Git的操作流程分为以下几个

  1. 将修改的文件添加至暂存区

  2. 查看暂存区修改状态

  3. 将暂存区修改的文件提交至版本库

  4. 查看近期提交状态

  5. 回退到相应的历史时刻

 

  1. 将修改的文件添加至暂存区

  通过 Git add 命令将工作区的文件添加至暂存区。

  

  2. 查看暂存区修改

  将修改的文件添加至暂存区,如果要查看我修改了哪些文件的话,可以通过 Git status 命令查看 查看项目的当前状态,查看上次提交有没有修改。

  通过对工作区文件修改之后 Git status命令显示结果如下

  

  这样看到的只是我修改了哪个文件,那么要查看修改了什么内容就需要用到 Git diff <fileName> 命令,通过Git diff命令结果显示如下

  

  通过该命令可以看到我对文件进行了怎么样的修改,当然这种对比只能对比文本文件类文档,像Word,图片之类的文件是不能通过该命令对比的。

  3. 将暂存区文件提交至版本库

  当我们将修改好的文件提交至暂存区,并确定修改无误之后,我们需要将暂存区的文件提交至版本库,这个时候需要用到 Git commit -m "annotation" 进行提交, -m "" 是添加本次提交的注释

  

  注意:提交只是将暂存区文件提交至版本库,如果你是将文件添加至暂存区之后进行了二次修改并没有将文件二次加入暂存区,那么二次修改的内容是不会提交的。

  4. 查看近期提交状态

  现在已经将一次修改提交到了版本库中, 那么我要看一下我最近都是进行了什么修改,那么可以通过 Git log 来查看近期提交的记录

  

 

  5. 回退到相应的历史时刻

  那么可能会出现这种情况

  1) 如果我不小心将工作区的文件修改乱了而且还原起来不太容易,我想把文件回退到原来的样子

  通过 Git checkout -- <filename> 来讲工作区的文件回退到上一次 git commit 或 Git add 状态

  如果只是在工作区修改了,并没有通过 Git add 添加到暂存区 可以通过 Git checkout -- filename 来还原工作区文件

  

  如果在工作区修改了,并且通过Git add命令添加至暂存区,那么首先要清理暂存区文件,然后在通过 Git checkout -- filename 来还原工作区文件

  通过 Git reset HEAD <filename> 来清理暂存区文件

  

  2) 我需要删除一个文件

  首先在文件夹中删除时会导致工作区和版本库中文件不一致,那么有分为以下两种情况

  一、我需要删除版本库中的文件

  通过 Git rm <filename>,然后 Git commit 来移除版本库中文件

  

  二、我需要还原文件

  通过 Git checkout -- <filename> 来还原文件(该命令是用版本区的文件替换工作区的文件)

  

 

   3) 我要回退到某个版本

  首先,我们可以通过Git log 命令来查看最近的提交记录

  

  其中 commit 后面的一长串字符串是版本号(因为是分布式,所以和SVN的1,2,3不一致),列表是从最近开始往前列举了提交记录,如果我们要回退到上个版本,需要使用 Git reset --hard HEAD^

  

  可以看到版本已经回退到 a10aef5 可以在上面列表中看到,回退到了上个版本,

  分析一下这条命令, HEAD 表示的是当前的版本,HEAD^表示的是上个版本,HEAD^^表示上上个版本。 也可以使用 Git reset --hard <ID>(版本号,可以不用写全,Git会自己寻找,只要保证找到的唯一即可)

  当然也会出现这种状况,如果我需要回退到新的版本怎么办?在git log中已经找不到之前版本的版本号了。

  这时候就要祭出git reflog 这条命令了,这条命令记录了你所有的命令操作。

  

  这个时候我们可以看到之前的版本号了,使用git reset --hard id 来回退到新的版本。

三、标签

  对于标签,我的理解是一个别名,类似于IP于域名之间的关系,由于IP不好记忆,我们就采用了IP与域名之间进行一对一关系,我们可以记忆简单的域名,标签也是类似,由于版本号不好记忆,所以我们采用版本号与标签一对一关系,记忆简单的标签。

  首先,我们来给一个版本打上标签,使用git tag <name> <版本号> 来打上标签,如果没有版本号,默认当前版本

  

  要查看所有的标签可以使用 git tag 命令

  

  git show <tagname> 查看tag详细信息

  

  如果打错了标签,可以使用 git tag -d <tagname>

  

四、分支管理

  分支管理:如果需要完成一个功能需要一段时间,但是没完成之前提交会导致其他人不能正常工作,如果最后一次提交又存在丢失每天进度的风险。那么我们可以新建另外一个分支来进行修改。

  首先我们明确 HEAD 指向的是主分支 matser, 而master指向的是当前版本

  

  如果我们需要新建一个分支

  

  然后HEAD指针指向子分支Dev,

  

 

  那么我们可以直接修改Dev分支,如果需要合并的话,就提交Dev分支就好

  

  然后删除Dev分支

  

  下面开始说明如何进行操作

  首先创建一个分支 git branch dev

  然后切换到dev分支 git checkout dev

  

  也可以通过 git checkout -b dev 一条命令完成。

  我们要查看当前工作的分支时,采用命令 git branch

  

  其中 当前工作的分支前有 “*”

  当我们在这个分支写完之后,我们需要合并两个分支,采用命令git merge <dev> (用于合并指定分支到当前分支)

  

  合并之后,我们就可以删除dev子分支 git branch -d <branchname> 

  

五、远程库

  git 是分布式的,也就是说,可以将版本库放在不同机器上,我们来简单介绍一下如何将代码存储到远程代码仓库github

  首先,我们需要在github上创建代码仓库:

  

  

  本地连接远程仓库:git remote add origin <url>

  

  向远程服务器推送 : git push -u origin master

  

  这样就可以将本地仓库推送到服务器中。

  

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
应用背景为变电站电力巡检,基于YOLO v4算法模型对常见电力巡检目标进行检测,并充分利用Ascend310提供的DVPP等硬件支持能力来完成流媒体的传输、处理等任务,并对系统性能做出一定的优化。.zip深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值