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
相关推荐
诸神缄默不语40 分钟前
备战 AI 出海 DAY 0:海外数据采集
大数据·人工智能
洋洋不叫杨杨3 小时前
揭秘当下知名的SEO优化渠道,你知道几个?
大数据·python
大大大大晴天3 小时前
用 Helm、CRD 与 Operator 管大数据:声明式运维如何替代脚本化部署
大数据
外域速览5 小时前
2026世界动力电池大会今日宜宾启幕:固态电池从实验室走向量产,IEC 国际标准终结概念乱象
大数据·人工智能·microsoft
小五传输5 小时前
FTP替代怎么做?医院文件安全传输选型与迁移指南
大数据·运维·安全
小刘快学习5 小时前
一把钥匙开所有门:企业AI网关的统一身份与权限治理
大数据·人工智能
大模型码小白7 小时前
AI大模型接入SDK:人工智能核心概念与发展史
大数据·运维·人工智能·安全·prompt
电商API_180079052477 小时前
电商商品价格监控工具淘宝京东商品价格抓取API项目实操分享
java·大数据·开发语言·前端·数据挖掘
金立基胶粘8 小时前
如何利用替塑油推动环保发展?
大数据·安全
用户3610588626128 小时前
SparkStreaming 之 Kafka 与 SparkStreaming 参数配置详解
大数据·spark