嵌入式 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
相关推荐
南城花随雪。2 小时前
单片机:实现点阵汉字平滑滚动显示(附带源码)
单片机·嵌入式硬件
唐可盐2 小时前
Ubuntu安装Gitlab详细图文教程
git·gitlab·github
靠谱杨3 小时前
【Linux服务器nginx前端部署详解】ubantu22.04,前端Vue项目dist打包
linux·服务器·前端·vue.js·经验分享·阿里云·腾讯云
迷路爸爸1803 小时前
如何在Windows与Linux(Ubuntu/CentOS)之间配置SSH免密登录
linux·windows·ubuntu
小乌龟不会飞4 小时前
操作系统的基本认识
linux
运维&陈同学5 小时前
【Elasticsearch01】企业级日志分析系统ELK之Elasticsearch单机部署
大数据·linux·elk·elasticsearch·微服务·云原生·jenkins
stm32发烧友6 小时前
基于STM32的声控舞蹈机器人设计
stm32·嵌入式硬件·机器人
百川Cs6 小时前
【Linux】文件挂载系统-Filesystem mounting
linux·运维·服务器
EutoCool6 小时前
Linux:进程通信、管道通信
linux·运维·服务器