Git入门

* `git`是一个优秀的分布式版本控制系统,支持跨网络的软件本本控制;
* 版本库: 通常来说是一个目录,在这个目录里面包含的文件都是可以被`git`管理起来的,每个文件的修改,删除,`Git`都是可以进行追踪的,用于在需要的时刻进行还原;
* 配置:
    * 使用命令行配置,自己的用户信息
* `git config --global user.name`:通常是`Github`的用户名
* `git config --global user.mail`:通常是`Github`的注册邮箱;

这里写图片描述
* 创建本地仓库:
* 首先可以在一个适合的地方创建一个空目录
* 然后进入这个目录,执行git命令进行初始化
* 对于这个目录里面的.git目录里面的内容一定不能够进行修改
这里写图片描述
* 创建文件,将文件添加到交给git进行管理
这里写图片描述
* 提供版本,并且提供注释信息
这里写图片描述
* 几个基本的命令;
* git status:用户输出当前仓库的状态
这里写图片描述
* 如果修改文件内容在进行查看,就会出现是否提交的提示
这里写图片描述
* git diff:用于查看具体的内容变化
这里写图片描述
* 如果确定当前的内容是准确的,就可以进行提交
这里写图片描述
* git log;用于查看提交日志,
这里写图片描述
* 只显示提交的信息
这里写图片描述
* 回退到上一个版本
这里写图片描述
* 会退到上上一个版本git reset --hard HEAD^^
* 会退到第几个版本git reset --hard HEAD~num
* 会退到具体的某个版本git reset --hard 具体的版本号码
* 上面是回退到之前的版本,如果需要回退到之后的版本,就需要具体的版本号;
* 现在回退到第三个版本
这里写图片描述
* 对于版本的回退,不需要完整的版本号码,只要输入的版本号码可以唯一的识别各个不同的版本就可以了
* git reflog: 用于查看历史的提交记录
这里写图片描述
* 通常来说add命令是将文件放到缓冲区,通过commit命令将文件提交到版本区
* add执行的操作
这里写图片描述
* commit执行的操作
这里写图片描述
* git checkout --filename:
* 如果filename文件自修改后还没有放到暂存区,现在撤销修改,就会回到和版本一样的状态;
* 如果fileName文件已经添加到暂存区,又进行了修改,进行撤销之后,就回到添加到暂存区后的状态
* 总之使filename文件回到最后一次git commit或者git add的状态一致
* 远程仓库
* 远程仓库一般选择github,也就是将代码托管到github官网上面
* 首先需要输入ssh-keygen -t rsa -C '注册的邮箱地址'
这里写图片描述
* 上面的页面使用回车就可了,需要记住的是.ssh秘钥保存的目录,找到id_rsa.pub这个文件
这里写图片描述
* 登录github,选择setting,找到下面的页面
这里写图片描述
* 选择new SSHKey
这里写图片描述
* 这里添加的是公钥,通过上面的步骤,就完成了主机和github的通信,这个通信通过成通过私钥签名,公钥验证;
* 对于上面过程的测试
这里写图片描述
* 在主页选择start a project,然后按照下面的页面添加信息
这里写图片描述
* 上面的信息可以根据英文提示填写,一般来说选择默认的就可以了
* 关联远程仓库,这个关联操作是电脑关联远程仓库
这里写图片描述
*然后继续执行,进行关联操作
这里写图片描述
* 删除关联是通过git remote rm origin
* 在将本地文件推送到远程仓库之前,首先应该拉取远程仓库的软件到本地
* 按照第一次的会出错,因为是两个无关的历史
这里写图片描述
* 拉取成功之后的文件
这里写图片描述
* 然后执行推送命令
这里写图片描述
* 查看github就会出现新的内容
这里写图片描述
* 如果仍然出错,就不要在本地库里面进行操作,重新创建目录,然后进行拉取操作;
* 一把来说是先有远程库,然后拉去远程库到本地;
这里写图片描述
* 拉取到的数据和远程库是一样的,在完成代码之后就可以进行提交;
这里写图片描述
*一个特殊文件.gitignore: 通常来说,试讲不需要向远程仓库推送的文件名写到这个文件里面;
* 分支管理
* 是为了避免多个人协同开发的时候,出现自己代码的错误或者未完成,导致别人的代码出现错误,分支是可以合并的;
* 分支是每个人独立的,可以进行代码的提交等操作,这些并不影响别人在原有的分支上面进行编码,自己也可以进行代码的保存,在项目的最后进行代码的合并;
* 分支的操作:
* 创建分支:
*git branch 分支名
这里写图片描述
* 查看创建的分支
* git branch
这里写图片描述
* 切换分支
* git checkout 分支名
这里写图片描述
* 创建并且进行切换
* git checkout -b 分支名
这里写图片描述
* 分支的合并,首先需要在master分支上,然后才可以将其他分支上面的数据合并到master上面;

git merge 分支名
  • 如果需要在本地推送,并且创建新的分支使用
git push --set-upstream origin 分支名

这里写图片描述
* 无论是从master还是branch的分支上面拉取的数据,最后本质上都是是master分支,拉取下来之后,可以自己创建自己的分支,最后选择需要拉取的分支;
这里写图片描述
* 如果多个分支包括主分支都进行了提交操作,并且进行了合并主分支上面的内容会出现混乱,master上面就会显示每个人的操作,只能够手动选择留下那些内容;
这里写图片描述
这里写图片描述
这里写图片描述
* 查看文件的内容
这里写图片描述
* 这里需要选择,是否保留master分支上面的内容
* 查看分支的合并图
这里写图片描述
* 分支策略:master分支是十分稳定的,不建议在上面进行修改操作,所有的操作都应该是自己创建的branch上面.需要的时候进行合并操作,应该创建一个dev,用来检查合并的操作是否是规范的,如果规范,在提交各master

  • 标签管理
  • 创建标签
    这里写图片描述
  • git tag 标签名 commitID:指定commit ID打标签
  • git tag -a 标签名 -m '标签信息':用于指定标签信息
  • git show 标签名:查看说明文字
    这里写图片描述
  • git tag -d 标签名:用于删除不需要的标签
  • 切换到标签v1.0
    这里写图片描述
  • 推送标签到远程仓库
    这里写图片描述
  • 一次性推送本地所有标签
git push origin --tags
  • 删除已经推送到远程的标签

  • 先本地删除

git tag -d 标签名
  • 远程删除
git push origin :refs/tags 标签名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在信号处理领域,DOA(Direction of Arrival)估计是一项关键技术,主要用于确定多个信号源到达接收阵列的方向。本文将详细探讨三种ESPRIT(Estimation of Signal Parameters via Rotational Invariance Techniques)算法在DOA估计中的实现,以及它们在MATLAB环境中的具体应用。 ESPRIT算法是由Paul Kailath等人于1986年提出的,其核心思想是利用阵列数据的旋转不变性来估计信号源的角度。这种算法相比传统的 MUSIC(Multiple Signal Classification)算法具有较低的计算复杂度,且无需进行特征值分解,因此在实际应用中颇具优势。 1. 普通ESPRIT算法 普通ESPRIT算法分为两个主要步骤:构造等效旋转不变系统和估计角度。通过空间平移(如延时)构建两个子阵列,使得它们之间的关系具有旋转不变性。然后,通过对子阵列数据进行最小二乘拟合,可以得到信号源的角频率估计,进一步转换为DOA估计。 2. 常规ESPRIT算法实现 在描述中提到的`common_esprit_method1.m`和`common_esprit_method2.m`是两种不同的普通ESPRIT算法实现。它们可能在实现细节上略有差异,比如选择子阵列的方式、参数估计的策略等。MATLAB代码通常会包含预处理步骤(如数据归一化)、子阵列构造、旋转不变性矩阵的建立、最小二乘估计等部分。通过运行这两个文件,可以比较它们在估计精度和计算效率上的异同。 3. TLS_ESPRIT算法 TLS(Total Least Squares)ESPRIT是对普通ESPRIT的优化,它考虑了数据噪声的影响,提高了估计的稳健性。在TLS_ESPRIT算法中,不假设数据噪声是高斯白噪声,而是采用总最小二乘准则来拟合数据。这使得算法在噪声环境下表现更优。`TLS_esprit.m`文件应该包含了TLS_ESPRIT算法的整实现,包括TLS估计的步骤和旋转不变性矩阵的改进处理。 在实际应用中,选择合适的ESPRIT变体取决于系统条件,例如噪声水平、信号质量以及计算资源。通过MATLAB实现,研究者和工程师可以方便地比较不同算法的效果,并根据需要进行调整和优化。同时,这些代码也为教学和学习DOA估计提供了一个直观的平台,有助于深入理解ESPRIT算法的工作原理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值