git学习笔记之基本指令的使用(一)

Git版本控制精要
本文深入探讨Git作为分布式版本控制系统的特性和优势,对比集中式版本控制系统如SVN,详述Git的基本操作指令,包括初始化仓库、添加及提交文件、查看历史记录及版本回溯,适合初学者快速掌握Git的核心功能。

背景介绍

特点

  • git分布式的版本控制系统;
  • 是用C语言开发的;
  • CVS、SVN为集中式;

集中式分布式区别

集中式

  • 集中式中央服务器负责存储;
  • 每次开发前都要从中央服务器中 clone 源码;
  • 必须联网才能工作;
  • 中央服务器宕机,源码若无备份就完蛋;

分布式

  • 可以没用中央服务器;
  • 中央服务器只是方便交换文档;
  • 一人宕机,可以从其余分支处直接 clone 一份源码;
  • 无需联网也能工作;

基本指令

git init :将目录变成git可管理的仓库

创建工程文件夹,并进入文件夹,讲目录变成git可管理的仓库。

lius@pix:~$ mkdir testgit
lius@pix:~$ cd testgit/
lius@pix:~/testgit$ pwd
/home/lius/testgit
lius@pix:~/testgit$ git init
初始化空的 Git 仓库于 /home/lius/testgit/.git/
lius@pix:~/testgit$ 

初始化之后,实际testgit目录下多了一个 .git 的隐藏文件夹,是 git 用来跟踪管理版本的,千万不要去修改里面的文件。

版本控制系统,只能跟踪文本文件的改动(xx文件第n行增加/删除了什么),图片、视频等二进制文件每次改动,只知道文件发生了变化知道发了哪些变换

git add :将文件添加到仓库

git add file1.txt file2.txt
# 或者使用*通配符
git add *
# 或者使用.通配符
git add .

两个通配符没有任何的区别,就是使用形式不一样。使用通配符会将工作时所有的变化存放到暂存区,包括所有修改和新建的文件但不包括已经被删除的文件

git commit :将文件提交到仓库

- m			添加本次提交的说明,方便以后查找,非常有意义!!

-m 可以不加,不加会跳到文件中,直接编辑文件内容,文件的内容就是mark。

# -m直接添加注释
git commit -m "This is mark"
# 不用-m,到文件中添加注释
git commit

commit是把所有add的文件都提交。

git log :查看commit的历史记录(回到历史)

注意,这个是commit的记录,如果回到之前版本,这个版本之后的commit都将不会在此命令中显示。
例如,版本顺序如下,最后一个版本为E:
A→B→C→D→E
我从E版本回到C,则 git log 显示的历史记录如下:
A→B→C

具体操作如下:

# 查看所有内容
git log
# 只显示一行
git log --pretty=oneline

git reflog :查看历史的命令/版本号(回到未来)

此处每一次执行git commit,git reset等命令时的版本号,帮助恢复到之前的版本。

执行 git reflog之后的输出如下,最前方的是版本号,之后是执行的命令。

lius@pix:~/gittest/zxf$ git reflog 
5abdc6e HEAD@{0}: reset: moving to 5abdc
bab3c40 HEAD@{1}: reset: moving to bab3
5abdc6e HEAD@{2}: reset: moving to 5abdc
bab3c40 HEAD@{3}: reset: moving to HEAD^^
5abdc6e HEAD@{4}: commit: version 1.2
7f68583 HEAD@{5}: commit: version 1.1 add headfile
bab3c40 HEAD@{6}: commit (initial): version 1.0

git reset - -hard HEAD^ :返回之前的版本

重要,实现回到过去,回到未来版本的指令!!!
HEAD的不同含义:

HEAD			HEAD^			HEAD^^			HEAD~n	
当前版本			上一个版本		上上个版本		往上n个版本

HEAD也可以被替代成log显示的版本号(没必要写全,几位唯一确定就可)

# HEAD
git reset --hard HEAD~2
# 版本号
git reset --hard 1094ab

常见的操作失误

  • 空的文件夹无法被add, 所以任何空的文件夹删除了就只能自己新建;
    • 可以执行以下指令看一看:
mkdir test
git add test	# 或者git add *
git status	# 会显示是干净的分支
  • 删除文件要用 git rm < 文件夹/文件名 > , 不能使用通配符!
    不要用以下指令
# 如果要删除 aaa/xxx	xxx为文件名, aaa为文件夹名
# 删除时正常使用 git rm aaa/xxx
# 不要使用下面的通配符
git rm *	# 这样删除不成功
			# 会提示未提供 -r 选项不会递归删除 'aaa'

# 如果你认为下面的指令能删除 'aaa' 和 'aaa/xxx', 你就错了
# 它会把所有文件都删除!!!!
git rm -r *
【四轴飞行器】非线性三自由度四轴飞行器模拟器研究(Matlab代码实现)内容概要:本文围绕非线性三自由度四轴飞行器的建模与仿真展开,重点介绍了基于Matlab的飞行器动力学模型构建与控制系统设计方法。通过对四轴飞行器非线性运动方程的推导,建立其在三维空间中的姿态与位置动态模型,并采用数值仿真手段实现飞行器在复杂环境下的行为模拟。文中详细阐述了系统状态方程的构建、控制输入设计以及仿真参数设置,并结合具体代码实现展示了如何对飞行器进行稳定控制与轨迹跟踪。此外,文章还提到了多种优化与控制策略的应用背景,如模型预测控制、PID控制等,突出了Matlab工具在无人机系统仿真中的强大功能。; 适合人群:具备定自动控制理论基础和Matlab编程能力的高校学生、科研人员及从事无人机系统开发的工程师;尤其适合从事飞行器建模、控制算法研究及相关领域研究的专业人士。; 使用场景及目标:①用于四轴飞行器非线性动力学建模的教学与科研实践;②为无人机控制系统设计(如姿态控制、轨迹跟踪)提供仿真验证平台;③支持高级控制算法(如MPC、LQR、PID)的研究与对比分析; 阅读建议:建议读者结合文中提到的Matlab代码与仿真模型,动手实践飞行器建模与控制流程,重点关注动力学方程的实现与控制器参数调优,同时可拓展至多自由度或复杂环境下的飞行仿真研究。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值