git学习笔记(一)Git基础

git学习笔记(一) Git基础

git三种状态

Git 有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)。
• 已修改表示修改了文件,但还没保存到数据库中。
• 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
• 已提交表示数据已经安全地保存在本地数据库中。
这会让我们的 Git 项目拥有三个阶段:工作区暂存区以及 本地仓库

获取帮助

$ git <verb> --help
$ git help <verb>
$ man git-<verb>

例:获取 git add命令帮助:

$ git add -h
usage: git add [<options>] [--] <pathspec>...
-n, --dry-run dry run
-v, --verbose be verbose
-i, --interactive interactive picking
-p, --patch select hunks interactively
-e, --edit edit current diff and apply
-f, --force allow adding otherwise ignored files
-u, --update update tracked files
--renormalize renormalize EOL of tracked files (implies -u)
-N, --intent-to-add record only the fact that the path will be added
later
-A, --all add changes from all tracked and untracked files
--ignore-removal ignore paths removed in the working tree (same
as --no-all)
--refresh don't add, only refresh the index
--ignore-errors just skip files which cannot be added because of
errors
--ignore-missing check if - even missing - files are ignored in
dry run
--chmod (+|-)x override the executable bit of the listed files

设置信息

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

使用--global选项,那么命令只需要在该系统运行一次。

初始化仓库

$ git init

该命令创建一个名为.git的子目录,只需要项目文件中含.git文件夹,就可以称为Git仓库。

克隆现有仓库

$ git clone https://github.com/libgit2/libgit2

$ git clone https://github.com/libgit2/libgit2 mylibgit(自定义目录名)

检测文件状态

$ git status

忽略文件

在项目根目录创建.gitignore文件。

*.[oa]
*~

首行忽略.o.a结尾的文件,次行忽略以波浪符结尾的文件。

文件.gitignore的格式规范:

  • 所有空行或者以 # 开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
  • 匹配模式可以以(/)开头防止递归。
  • 匹配模式可以以(/)结尾指定目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。

官方的.gitignore例子:

# 忽略所有的 .a 文件
*.a

# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a

# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO

# 忽略任何目录下名为 build 的文件夹
build/

# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt

# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf

GitHub 有一个十分详细的针对数十种项目及语言的 .gitignore 文件列表, 你可以在
https://github.com/github/gitignore 找到它。

比较差异

$ git diff
$ git diff --staged

对于某个文件,进行了git add filename操作加入到暂存区后,再对文件进行修改,

想查看修改前后的差异,可使用git diff命令。

git diff比较的是工作目录中当前文件暂存区域快照之间的差异。 也就是修改之后还没有暂存起来的变化内容。

若要查看已暂存的将要添加到下次提交里的内容,可以用 git diff --staged命令。

git diff --staged命令将比对已暂存文件最后一次提交的文件差异。

--staged--cached 是同义词

移除文件

$ git rm <file-name>
$ git rm -f <file-name>
$ git rm --cached <file-name>

git rm同时从工作区和暂存区中删除文件,即本地的文件也被删除了。如果要删除之前修改过或已经放到暂存区的文件,则必须使用强制删除选项-f,如果想保留工作区的文件,可以使用--cached选项。

文件改名

$ git mv file_from firle_to

git mv相当于运行了下面三条命令:

$ mv README.md README
$ git rm README.md
$ git add README

查看提交历史

$ git log

git log 会按时间先后顺序列出所有的提交,最近的更新排在最上面。

提交更新

$ git commit

执行后会打开vim,输入提交信息。

$ git commit -m "提交信息"

-m参数将提交信息和命令放在同一行。

$ git commit -a -m "提交信息"

-a参数跳过使用暂存区域,即跳过git add步骤。

有时这个选项会将不需要的文件添加到提交中。

撤销操作

$ git commit --amend

该命令覆盖上一次提交。

$ git reset HEAD <file>

该命令将文件从暂存区移除。即撤销add该文件的命令。

$ git checkout -- CONTRIBUTING.md

该命令撤销对文件的修改,返回上一次提交的样子。

git checkout -- <file>是一个危险的命令。 你对那个文件在本地的任何修改都会消失——Git 会用最近提交的版本覆盖掉它。 除非你确实清楚不想要对那个文件的本地修改了,否则请不要使用这个命令。

远程仓库的使用

$ git clone <远程仓库地址>

克隆远程仓库到本地。

$ git remote -v

显示读写远程仓库时需要使用的简写及其对应的 URL。

$ git remote add <shortname> <url>

添加一个新的远程 Git 仓库,同时指定一个方便使用的简写,此后可以使用简写来代替url。

$ git remote show <remote>

查看某个远程仓库的URL、branches等信息。

$ git push <shortname> <branch>

推送到远程仓库的某个分支

$git remote rename <old name> <new name>

将一个远程仓库的简写名重命名。

ortname>


> 添加一个新的远程 Git 仓库,同时指定一个方便使用的简写,此后可以使用简写来代替url。



```bash
$ git remote show <remote>

查看某个远程仓库的URL、branches等信息。

$ git push <shortname> <branch>

推送到远程仓库的某个分支

$git remote rename <old name> <new name>

将一个远程仓库的简写名重命名。

基于STM32 F4的永磁同步电机无位置传感器控制策略研究内容概要:本文围绕基于STM32 F4的永磁同步电机(PMSM)无位置传感器控制策略展开研究,重点探讨在不依赖物理位置传感器的情况下,如何通过算法实现对电机转子位置和速度的精确估计与控制。文中结合嵌入式开发平台STM32 F4,采用如滑模观测器、扩展卡尔曼滤波或高频注入法等先进观测技术,实现对电机反电动势或磁链的估算,进而完成无传感器矢量控制(FOC)。同时,研究涵盖系统建模、控制算法设计、仿真验证(可能使用Simulink)以及在STM32硬件平台上的代码实现与调试,旨在提高电机控制系统的可靠性、降低成本并增强环境适应性。; 适合人群:具备定电力电子、自动控制理论基础和嵌入式开发经验的电气工程、自动化及相关专业的研究生、科研人员及从事电机驱动开发的工程师。; 使用场景及目标:①掌握永磁同步电机无位置传感器控制的核心原理与实现方法;②学习如何在STM32平台上进行电机控制算法的移植与优化;③为开发高性能、低成本的电机驱动系统提供技术参考与实践指导。; 阅读建议:建议读者结合文中提到的控制理论、仿真模型与实际代码实现进行系统学习,有条件者应在实验平台上进行验证,重点关注观测器设计、参数整定及系统稳定性分析等关键环节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值