git使用教程

一、第一次拉代码:别上来就pull

正确姿势(命令版):

复制代码
git clone https://github.com/xxx/项目名.git
cd 项目名

VSCode版:

Ctrl + Shift + P 打开命令面板

输入 Git: Clone

粘贴仓库地址,选个本地文件夹

完事儿

翻车预警:

仓库地址别抄错,http和`ssh不一样,权限也不一样

文件夹路径尽量不要有中文,不然有些工具会抽风

二、日常三连:add、commit、push

这一套你肯定听过,但顺序真的有强迫症会搞混。

命令版:

复制代码
git add .           # 把所有改动都加进去
git commit -m "修复了登录bug"
git push origin main

VSCode版:

左侧源代码管理图标(长得像分叉的路)

改过的文件会列出来,鼠标放上去点 +(暂存)

写个提交消息,比如"fix: 登录bug",然后点上面的✓

再点一下"同步"按钮(或者点...菜单里的推送)

我的翻车经历: 有一次我忘了 git add .,直接 git commit -m "改了一堆",结果提示 nothing added to commit。我心想:我不是改了吗?后来才知道git不知道你要提交哪些文件,必须手动加。

还有一次,我 git add . 完,git commit -m "更新",然后直接关机下班了。第二天leader问我:你代码怎么没推上去?我一看,git push 忘记敲了。

所以我现在习惯:commit 之后立刻 push,一刻都不等。

三、拉取最新代码:pull之前先看一眼

你在写代码,同事也在写。你写完了准备 push,结果报错:

复制代码
! [rejected] main -> main (fetch first)

翻译成人话:人家先你一步,你得先把他的代码拉下来,合并一下,再推。

命令版:

复制代码
git pull origin main

VSCode版: 点击底部的"同步"图标,或者点"拉取"再点"推送"。

进阶习惯(重要): 我一般不会直接用 pull。因为 pull = fetch + merge,它自动帮你合并了,有时候你都不知道别人改了什么。

更稳妥的做法:

复制代码
git fetch origin         # 只看远程有什么变化,不改你本地代码
git diff main origin/main  # 看看具体改了啥
git merge origin/main    # 确认没问题再合并

虽然多敲两行,但能避免"莫名其妙出现一堆冲突"的恐慌。

我的另一个翻车: 有一次我在一个分支上改了三天,准备拉一下主分支的最新代码,结果 git pull origin main 直接把冲突爆了我一脸,三个文件,上百行冲突,我当时真的想删库跑路。

后来学乖了:长时间不拉代码,拉之前先 commit 自己的改动,这样冲突至少能回退。

四、分支操作:别在主分支上直接改

新手最容易犯的错:直接在 main 上改代码,然后 push

看起来没问题,但如果公司要求代码必须经过PR合入,你就要被骂了。

正确流程:

从主分支切一个新分支

在自己分支上改

推送到远程,发起合并请求(Pull Request / Merge Request

命令版:

复制代码
git checkout main
git pull origin main          # 确保本地主分支最新
git checkout -b feature/登录优化   # 创建并切换到新分支
# 改代码...
git add .
git commit -m "feat: 登录页记住密码"
git push origin feature/登录优化

VSCode版:

点击左下角分支名(比如 main)

选择"创建新分支",输入名字,比如 feature/登录优化

自动切换到新分支

改完代码后,暂存、提交、推送(推送时会让你选远程分支)

合并请求:

在GitHub/GitLab网页上发起PR

等同事review通过后,点"合并"

翻车现场: 有一次我切分支忘了切,直接在 main 上改了一个功能,然后 push 了。leader问:谁让你改主分支的?我赶紧 git reset --soft HEAD~1 把提交撤回,再切分支重新提交。

记住一句话:凡是你觉得"就改一行"的时候,你最应该切分支。

五、撤销与后悔药:git 不只有 reset --hard

我见过太多人一着急就 git reset --hard HEAD~1,然后发现丢了一周的代码,哭都哭不出来。

几个常用后悔药(按危险程度排序):

1. 只撤销 commit,不丢代码
复制代码
git reset --soft HEAD~1

HEAD~1 退回到上一个版本,你改过的代码还在工作区,可以重新提交。

2. 撤销 commit 且撤销暂存(代码还在)
复制代码
git reset HEAD~1

代码变成未暂存状态(就是你改了但还没 add 的样子)。

3. 彻底回到过去(危险)
复制代码
git reset --hard HEAD~1

代码直接消失。如果你没推到远程,那真的没了。

我的教训: 有一次我 reset --hard 后才发现,我写了两天的功能全没了。还好我有个习惯------每天下班前 push 到远程。从远程 git pull 又救回来了。

所以:频繁 push,是你最大的后悔药。

4. 安全撤销(推荐)
复制代码
git revert HEAD

这会生成一个新的 commit,内容是把上一次提交的改动全部撤回。不会删历史,不会丢代码,团队协作时最安全。

5. 临时藏起未完成的修改(stash)

你正在改代码,突然需要切到另一个分支修紧急bug。但当前改动还没完成,不能 commit

复制代码
git stash          # 藏起来
git checkout bugfix
# 修好了
git checkout 原分支
git stash pop      # 把藏的东西拿出来

VSCode 里,点 ... 菜单,有"存储"和"弹出存储",是一样的。

六、最后的真心话

git 这东西,单独看每个命令都不难,难的是组合起来、在真实场景下不犯晕。

我学git的过程就是不断踩坑------覆盖过同事代码,亲手删过自己代码,还曾经因为分支切错把一个半成品合到了生产环境。

但现在我养成了几个习惯:

每天上班第一件事:git pull

每天下班前最后一件事:git push

开新功能必切分支

reset 之前先想三秒钟

如果你记不住命令,VSCode 的图形界面真的够用。从 clonepushmerge,你都可以用鼠标完成。等你熟了再去敲命令也不迟。

最后送你一张我自己整理的常用场景速查(不用背,用到的时候来看就行):

我想做啥 命令
第一次拉代码 git clone <地址>
看当前状态 git status
把所有改动暂存 git add .
提交 git commit -m "消息"
推上去 git push origin 分支名
拉最新代码 git pull origin 分支名
切新分支 git checkout -b 新分支名
切回旧分支 git checkout 旧分支名
合并分支 git merge 要合进来的分支
暂存现场 git stash / git stash pop
撤销commit(不丢代码) git reset --soft HEAD~1
安全撤销(生成新commit git revert HEAD
相关推荐
互联网推荐官1 小时前
上海物联网应用开发技术路径拆解:从协议选型到平台架构的工程实践
大数据·人工智能·软件工程
goyeer2 小时前
【ITIL】ITIL服务管理的四个维度
大数据·运维·信息化·自动运维·itil
珠海西格电力2 小时前
零碳园区管理系统“云-边-端”架构协同的价值及具体案例
大数据·数据库·人工智能·架构·能源
财迅通Ai2 小时前
星星科技:双主业协同增效,经营现金流增82.62%
大数据·科技·星星科技
丝雨_xrc2 小时前
Claude Opus 4.7 新手快速上手指南
大数据·网络·人工智能
QYR-分析2 小时前
全球汽车微孔锂电铜箔市场分析及发展机遇
大数据·人工智能·汽车
ai大模型中转api测评2 小时前
构建生产级 AI 应用:GPT-5.5 与 Claude 4.7 的 Token 成本管理与工程化实战
大数据·人工智能·gpt·自动化
汽车仪器仪表相关领域2 小时前
Kvaser Memorator R SemiPro:双通道CAN总线记录仪,汽车与工业测试的高性价比之选
大数据·网络·人工智能·功能测试·汽车·安全性测试
天天爱吃肉82182 小时前
空间智能上车:新能源OEM决胜「第三空间」的底层技术革命|研发工程师深度解析
大数据·人工智能·嵌入式硬件·汽车