嵌入式 linux Git常用命令 抽补丁 打补丁

Git常用命令

为什么要学习git呢?我相信刚入门的小伙伴敲打肯定碰到过这种玄学问题,我明明刚刚还能用的代码,后面不知道咋的就不能用了,所以每次你调出一个功能点以后都会手动复制一份代码防止出问题,时间一长发现整个目录全是你复制的乱七八糟的版本头大炸了,Git工具完美的解决了这些问题。这里简单的列出几个git优点。

1. 解决代码管理混乱的问题:

在开发中,我们常常需要调整代码或尝试新功能。如果不小心改坏了代码,可能会导致项目无法运行。如果每次都手动备份代码,文件夹会很快变得杂乱不堪。Git 通过强大的版本控制能力,帮助你保存每次修改,随时回退到以前的状态,让开发更加放心。

2. 提高团队协作效率:

多人协作开发时,代码冲突是不可避免的。如果没有工具管理版本和冲突,项目进度会被严重拖慢。Git 提供了高效的分支合并机制,能清晰地展示每位成员的修改,帮助团队快速解决冲突并同步代码。

3. 支持远程工作:

Git 与远程仓库(如 GitHub、GitLab 等)无缝集成,支持跨地域的多人协作,即使团队成员分布在不同的城市,也能高效合作。

步骤1:安装 Git

bash 复制代码
sudo apt update
sudo apt install git

步骤2:配置 Git

在使用 Git 之前,需要配置用户名和电子邮件地址(如果不提交远程可以随便配置):

在终端中,运行以下命令来设置你的用户名:

bash 复制代码
git config --global user.name "你的用户名"

运行以下命令来设置你的电子邮件地址:

bash 复制代码
git config --global user.email "你的电子邮件地址"

步骤3:创建和克隆仓库

在终端中,进入要创建仓库的目录或选择要克隆仓库的目录。

创建一个新的本地 Git 仓库:

bash 复制代码
git init

克隆一个远程 Git 仓库(如果已存在):

bash 复制代码
git clone 远程仓库的 URL

步骤4:常用 Git 命令

查看仓库状态:

bash 复制代码
git status

添加文件到暂存区:

bash 复制代码
git add 文件名

提交更改到仓库:

bash 复制代码
git commit -m "提交信息"

查看提交历史:

bash 复制代码
git log

创建新分支:

bash 复制代码
git branch 分支名

切换到分支:

bash 复制代码
git checkout 分支名

步骤5:推送和拉取代码

推送和拉取代码是与远程仓库进行交互的关键操作。

推送代码:

bash 复制代码
git push 远程仓库名 分支名

拉取代码:

bash 复制代码
git pull 远程仓库名 分支名

步骤6:撤销更改

有时你可能需要撤销之前的更改或回退到之前的版本。

撤销对文件的修改:

bash 复制代码
git checkout 文件名

补丁

之前我们学习梁山派等单片机的时候,给其他人分享代码都是整个工程直接复制的,包括我们提供的案例也是基本一个功能对应一个工程,但Linux和Android的SDK是非常庞大的如果我们给其他人分享代码也是通过拷贝SDK那真的要累死个球。在本次训练营中我们后面给大家分享特定功能代码的时候也会通过补丁方式提供。

抽补丁

创建一个新的本地 Git 仓库:

bash 复制代码
git init

添加文件到暂存区:

bash 复制代码
git add 文件名

提交更改到仓库:

bash 复制代码
git commit -m "提交信息"

抽补丁:

bash 复制代码
git diff > my_patch_name.patch

打补丁

bash 复制代码
patch < my_patch_name.patch
相关推荐
wuicer11 分钟前
ubuntu 20.04 安装anaconda以及安装spyder
linux·运维·ubuntu
qq_377572771 小时前
git commit - revert + reset + checkout + reorder
git
cui__OaO2 小时前
Linux软件编程--线程
linux·开发语言·线程·互斥锁·死锁·信号量·嵌入式学习
小狗爱吃黄桃罐头2 小时前
正点原子【第四期】Linux之驱动开发篇学习笔记-1.1 Linux驱动开发与裸机开发的区别
linux·驱动开发·学习
fengfuyao9852 小时前
STM32如何定位HardFault错误,一种实用方法
stm32·单片机·嵌入式硬件
小晶晶京京2 小时前
day34-LNMP详解
linux·运维·服务器
画个太阳作晴天2 小时前
A12预装app
linux·服务器·前端
爱学习的颖颖3 小时前
EXTI外部中断的执行逻辑|以对射式红外传感器计次为例
单片机·嵌入式硬件·exti中断
fengyehongWorld3 小时前
Linux crontab定时任务
linux·运维
shuangrenlong3 小时前
ubuntu更新chrome版本
linux·chrome·ubuntu