尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Git基础——add/commit/push/branch的正确使用姿势
面试的时候被问过一个问题你平时怎么管理代码我当时脑子一抽说了句用U盘备份。面试官笑了我也笑了。但那个笑比挂了还难受。后来才知道Git是机器人开发团队里最基础的工具没有之一。不管你是做算法的还是搞嵌入式的不会Git基本上就没法进团队。今天就把Git最核心的几个操作掰开了讲让你面试的时候不再心虚。git init和git clone从零开始两种情况。一种是你有个新项目啥都没有mkdir my_robot_project cd my_robot_project git init这时候当前目录就变成了一个Git仓库。Git会在里面创建一个.git隐藏文件夹用来跟踪所有变更。另一种是团队已经有现成的仓库了你需要把它拉下来git clone gitgithub.com:team/robot_project.git这行命令会在本地创建一份完整副本包括所有历史记录。注意不是只拿最新版本是全部历史都拿。这就是分布式版本控制的核心思想。clone下来之后你会看到一个.git目录。别碰它。删了它你就丢失了所有版本历史。git add和git commit最基本的提交改完代码之后第一步是告诉Git我改了哪些文件git status # 看看哪些文件变了 git add main.cpp # 把main.cpp加入暂存区 git add src/ # 把src目录下所有改动都加入 git add . # 把所有改动都加入慎用git add这一步很关键。它不是提交只是告诉Git这些改动我准备提交了。你可以选择性地只add一部分文件比如你改了两个bug但只想先提交其中一个。然后是真正的提交git commit -m 修复了激光雷达数据解析的bugcommit message写清楚这是给未来的自己看的。别写fix bug这种废话过一个月你自己都不知道fix了啥。有个实用技巧git add -p。这个命令可以按代码块hunk来添加而不是整个文件。比如你改了一个文件里的两处代码只想提交其中一处用-p就能精确选择。面试的时候提到这个面试官会觉得你是真用过Git的。.gitignore别把不该提交的东西传上去每个项目根目录都应该有个.gitignore文件。它告诉Git哪些文件不需要跟踪。典型的机器人项目.gitignorebuild/ devel/ install/ *.pyc .vscode/ *.swp core_dump编译产物、IDE配置、Python缓存文件这些都不应该提交。我之前见过一个实习生把整个build目录都commit进去了几万个文件仓库直接膨胀到2个G。后来花了好大力气才从历史里清掉。git branch分支的正确用法分支是Git最强大的功能。你可以把它理解为平行宇宙——在主线之外开一条线随便改改好了再合并回去。git branch # 查看所有分支 git branch feature_lidar # 创建新分支 git checkout feature_lidar # 切换到该分支 git checkout -b feature_lidar # 创建并切换上面两步合一在机器人项目里常见的分支策略是这样的main分支永远是稳定可发布的版本develop是日常开发的主线然后每个功能或者bugfix单独开一个分支。比如你要加一个IMU驱动就开个feature_imu_driver分支开发完了再合并回develop。千万别在main分支上直接改代码。这不是小项目两三个人随便搞搞的时代了正经团队都有分支规范。git push和git pull远程同步本地commit之后代码还在你自己电脑上。要推到远程仓库让团队看到git push origin feature_lidar # 把本地分支推到远程 git push -u origin feature_lidar # 第一次push时加-u建立追踪关系-u这个参数只在第一次用。之后直接git push就行了Git已经记住了你要推到哪里。从远程拉取更新用git pullgit pull origin develop这其实是两个操作的组合先从远程下载fetch再合并到本地merge。这里有个新手常踩的坑你在本地改了代码同事也改了你pull的时候就会冲突。冲突不可怕后面会专门讲。但你要养成一个习惯——开始工作前先pull一下保持本地和远程同步能减少很多不必要的冲突。git log和git diff查看历史git log # 查看提交历史 git log --oneline # 简洁模式一行一个commit git log --graph # 图形化显示分支合并 git diff # 查看当前改动和上次commit的差异 git diff HEAD~1 # 查看和上一个commit的差异git log --oneline --graph --all这个组合命令特别好用能看到整个项目的分支历史全貌。排查问题的时候特别有用。机器人开发中的Git实践在机器人项目里Git的使用有一些特殊注意事项。大文件问题。机器人项目经常涉及数据集、模型文件、地图文件这些动辄几百MB的东西。直接提交到Git里会让仓库变得巨大。解决办法是用Git LFSLarge File Storagegit lfs install git lfs track *.pcd git lfs track *.bag这样大文件会被LFS管理不会撑爆仓库。多语言混合项目。一个典型的机器人项目可能同时有C、Python、Launch文件、配置文件。建议按功能模块组织目录结构而不是按语言分。这样在分支管理的时候一个功能的改动集中在一个目录里review起来方便。编译缓存。ROS项目的编译时间很长有时候编译产物会不小心被Git跟踪。一定要在.gitignore里排除build/、devel/、install/这些目录。面试中怎么聊Git面试官问Git通常不是让你背命令。他们想看的是你有没有在真实项目中用过有没有遇到过问题怎么解决的。你可以这样回答我们项目用Git Flow的分支模型main是稳定版本develop是开发主线。每个功能开feature分支开发完提PR做code review。有一次我push了一个commit把编译产物也提交进去了仓库从50M涨到800M后来用git filter-branch从历史里清掉的。从那以后我特别重视.gitignore的配置。这种回答比背十个命令都有说服力。因为它说明你真的用过真的踩过坑真的解决了问题。Git分支管理的实战经验在实际项目中Git分支管理策略很重要。一个简单有效的策略是main分支始终保持可发布状态开发在feature分支上进行完成后通过PR合并。常见的错误包括在main上直接修改、忘记拉取远程更新就push、解决冲突时不小心覆盖别人的代码。一个实用的习惯是每次开始工作前先git pull --rebase保持本地分支干净。补充一个实用技巧git log --oneline --graph --all 可以可视化查看完整的分支历史排查问题时特别方便。另外git diff --stat可以快速了解一次提交改了多少文件。掌握这些Git技巧团队协作效率会大幅提升。给你的建议多练。Git这东西光看不用根本学不会。自己建个仓库随便改改提交提交练练分支合并比看十篇文章都管用。记住几个核心概念就够了工作区、暂存区、仓库。git add是从工作区到暂存区git commit是从暂存区到仓库。理解了这个流程很多命令就不会搞混。还有commit message认真写。这不是给面试官看的是给半年后的自己看的。到时候你看到一条fix的commit绝对想穿越回去打人。上一篇第97篇 Docker进阶——多容器编排和机器人仿真环境搭建下一篇预告第99篇 Git进阶——rebase/cherry-pick/stash的实战场景
RELATED

相关推荐

LTE-TDD小区光路闪断故障处理典型案例

LTE-TDD小区光路闪断故障处理典型案例

一、站点告警与初步排查 TDD-LTE站点2小区历史告警显示频繁小区退服,光路-2闪断、校准告警等。 此类告警会反复上小区退服工单,白天严重影响用户感知。经查询,当前小区状态不可用,光链路连接失败告警。 二、故障排查与处理 经查询,当前光路状态信息显示,2小区对应BBU侧…

📅 2026/8/5 0:53:56
从文化到产品全面自研,好客搜陈海伟以私有知识库驱动企业 AI 数字化升级

从文化到产品全面自研,好客搜陈海伟以私有知识库驱动企业 AI 数字化升级

企业 AI 数字化升级的核心诉求,是实现内部海量文档智能化、安全化管理,但多数数字化方案存在技术外包、数据云端托管、算力适配差等短板,难以贴合企业长期发展需求,好客搜陈海伟实现全维度自主研发,由好客搜陈海伟搭建…

📅 2026/7/28 0:50:46
TI AMIC120 DDR3/LPDDR2 PCB设计实战:从信号完整性到稳定布局

TI AMIC120 DDR3/LPDDR2 PCB设计实战:从信号完整性到稳定布局

1. 项目概述与核心挑战在嵌入式硬件开发领域,尤其是基于像TI AMIC120这类高性能处理器的系统设计中,DDR内存接口的PCB布局布线往往是决定项目成败的关键一环。我见过太多项目,原理图设计得漂漂亮亮,软件也写得逻辑清晰&#xff0c…

📅 2026/7/28 0:59:55
MORE NEWS

更多资讯

📰

Earthworm 个性化学习设置完整指南:快捷键、发音与练习模式一次配好

Earthworm 个性化学习设置完整指南:快捷键、发音与练习模式一次配好 【免费下载链接】earthworm Learning English through the method of constructing sentences with conjunctions 项目地址: https://gitcode.com/GitHub_Trending/ea/earthworm Earthworm…

📰

FSTSP复现实战:卡车-无人机协同配送路径优化与Gurobi求解

去年在复现 The Flying Sidekick Traveling Salesman Problem(FSTSP)这篇经典论文时,我把整个求解链路从建模到 Gurobi 调参完整走了一遍。这个问题的核心一句话就能讲清楚:一辆卡车带着一架无人机从仓库出发,一起去给…

📰

Loop:免费 Mac 窗口管理,一个键摆好屏幕

Loop:免费 Mac 窗口管理,一个键摆好屏幕 【免费下载链接】Loop Window management made elegant. 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop 光标贴在窗口右下角,你已经第 N 次去够那条 1 像素的边——拖快了&#xff0…

📰

VGG19全面解析:从结构原理到PyTorch迁移学习实战

我平时看到不少学视觉的同学,第一个真正“吃透”的模型就是VGG19。这个系列走到第12篇,按理说早该聊点更花哨的结构了,但我还是想把VGG19单独拿出来细讲一次。原因很简单:与其说VGG19是一个具体的模型,不如说它是一把“…

📰

windows-window:面向 HWND 托管场景的最小化窗口创建与消息循环实战指南

windows-window:面向 HWND 托管场景的最小化窗口创建与消息循环实战指南 【免费下载链接】windows-rs Rust for Windows 项目地址: https://gitcode.com/GitHub_Trending/wi/windows-rs windows-window 是 Rust for Windows 仓库(本仓库 crates/li…

📰

充电桩多协议API自动化基建:JSON驱动+跨语言测试闭环

简介:本资源是一套面向Web开发工程师与新能源IoT系统集成者的充电桩API自动化搭建实战源码,聚焦解决新能源汽车充电设施快速对接、接口标准化配置与多语言协同开发等实际问题。压缩包共124个文件,总大小2.93MB,涵盖52个JSON配置文…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬