文章目录
新建仓库
本地仓库配置
- 右键选git bash here
bash
#初始化生成Git仓库,此操作会生成一个.git的文件夹,用于存放git的相关配置信息
git init
#将远程仓库链接到本地,而且仅仅是链接,不做任何下载上传操作
#<your_repository_url>是你的链接
git remote add origin <your_repository_url>
#从远程仓库的分支拉取<your_branch>是远程仓库的分支名称,般是master或者main
git pull origin <your_branch>
#使能大小写敏感选项,防止路径文件出现差错
git config core.ignorecase false
添加gitignore文件
-
顾名思义,在git的时候会忽略掉里面包含的文件
-
作用
- 保护关键文件不被修改
- 防止不必要的大文件占用仓库资源的作用
- 开发环境记录文件
- 编译中间生成文件
- 本地日志文件
-
是个纯文本文件
- 以换行回车分割不同的条目,每条是文件或者文件夹的路径
- 路径的详细说明
以/开头则gitignore文件所在
目录下的文件夹适配该条规则,否
则gitignore文件所在目录以及
其子目录均适配 - 以/结尾表示适配该条规则的为文件夹,否则为文件
- *是任意字符通配符
- ?是一个字符通配符
- **是任意文件夹路径通配符
-
如果不想忽略某个被ignore的路径下的某文件,可在该文件前加!
-
以#开头的是注释
-
.gitignore可以放置到工程中的任一
路径,则规则对该路径的全部文件和文
件夹起作用
-
一般情况下,单片机嵌入式代码的模板如下
bash
#所有的一般可执行文件
/**/*.exe
#KeilIDE编辑器忽略项
/**/MDK-ARM/*
#不忽略kei1工程配置文件
!/**/MDK-ARM/*.uVoptx
!/**/MDK-ARM/*.uVprojx
!/**/MDK-ARM/startup_*.s
#armgcc-cmake工程忽略项
/**/cmake-build-debug
#Vscode编辑器忽略项
/**/.vscode
/**/workspace.code-workspace
#clion编辑器忽略项
/**/.idea
管理
代码推送
- 推送代码前记得同步远程的最新代码仓库即再次执行下面的命令
bash
#从远程仓库的分支拉取
#<your_branch>是远程仓库的分支名称,一般是master或者main
git pull origin <your_branch>
bash
#将自己编写的代码加入暂存区
git add .
#将暂存区的代码添加到本地仓库,并添加自己对该修改的注释
#<your_description>是你的描述,比如新增某某功能,或修复某某bug
git commit -m "<your_description>"
#向远程仓库的分支推送
#<your_branch>是远程仓库的分支名称,一般是master或者main
git push origin <your_branch>
若出现error: failed to push some refs to 'https://gitee.com/...
原因:我们本地的Git默认主分支的名称是master,但远程仓库的默认主分支名称为main,导致本地仓库与远程仓库的分支之间名称不同,进而代码推送出问题
解决方法:修改本地分支名,执行如下指令
bash
#将本地分支master名称修改为main,或者反过来
git branch-m master main
vscode下使用git
- 注意!!!写代码的文件夹要放在git所在文件夹同个文件夹,因为vscode的git只能识别当前文件夹和上一层文件夹,如果你在MDK-ARM中创建文件夹斜驱动代码等,修改后git是识别不了的
版本回退与撤销回退
- git log查看历史记录
- Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^ ,上上一个版本就是HEAD^^ ,当然往上100个版本写100个^ 比较容易数不过来,所以写成HEAD~100。
bash
git reset --hard HEAD^
- 撤销回退,需要知道某个版本的commit id,用git log可以得到
bash
git reset --hard <对应的commit id>
- 如果你把窗口关掉,就不能往上翻找到id,怎么办?Git提供了一个命令git reflog用来记录你的每一次命令