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用来记录你的每一次命令
相关推荐
高洁0112 分钟前
具身智能-普通LLM智能体与具身智能:从语言理解到自主行动 (2)
深度学习·算法·aigc·transformer·知识图谱
正经教主17 分钟前
【Git】Git07:GitHub desktop使用教程【可选】
git·github
l1t23 分钟前
使用DuckDB SQL求解Advent of Code 2024第9题 磁盘碎片整理
数据库·sql·算法·duckdb·advent of code
顾安r26 分钟前
11.22 脚本 手机termux项目分析(bash)
前端·python·stm32·flask·bash
小南家的青蛙36 分钟前
LeetCode面试题 04.06 后继者
算法·leetcode·职场和发展
IT·小灰灰43 分钟前
基于Python的机器学习/数据分析环境搭建完全指南
开发语言·人工智能·python·算法·机器学习·数据分析
wefg11 小时前
【C++】智能指针
开发语言·c++·算法
搂鱼1145141 小时前
一类判断包含颜色整体的题目
算法
Demon--hx1 小时前
[c++]string的三种遍历方式
开发语言·c++·算法
无敌最俊朗@2 小时前
力扣hot100 - 合并两个有序链表21
算法·leetcode·链表