Git使用

文章目录

新建仓库


本地仓库配置

  • 右键选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用来记录你的每一次命令
相关推荐
MicroTech20255 分钟前
微算法科技(NASDAQ: MLGO)探索Grover量子搜索算法,利用量子叠加和干涉原理,实现在无序数据库中快速定位目标信息的效果。
数据库·科技·算法
不落的太陽10 分钟前
让测距功能与时俱进
单片机·嵌入式硬件
Funing712 分钟前
stm32地址偏移:为什么相邻寄存器的地址偏移量0x04表示4个字节?
stm32·单片机·嵌入式硬件
今天背单词了吗98030 分钟前
算法学习笔记:8.Bellman-Ford 算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·开发语言·后端·算法·最短路径问题
手握风云-40 分钟前
优选算法的链脉之韵:链表专题
数据结构·算法·链表
Coding小公仔44 分钟前
LeetCode 151. 反转字符串中的单词
开发语言·c++·算法
稳兽龙44 分钟前
P1098 [NOIP 2007 提高组] 字符串的展开
c++·算法·模拟
G.E.N.1 小时前
开源!RAG竞技场(2):标准RAG算法
大数据·人工智能·深度学习·神经网络·算法·llm·rag
写个博客1 小时前
暑假算法日记第三天
算法
✿ ༺ ོIT技术༻1 小时前
剑指offer第2版:动态规划+记忆化搜索
算法·动态规划·记忆化搜索