【Vibe Coding 必学技能之 Git】
即便 AI 能搞定项目,依然还有一些技能是必学的。其中最基础的就是 Git。
如果你做过乙方,你一定做过第一版、第二版.....最终版、打死不改版、再改是小狗版。而最终还是选择了第一版。
现在,即使 AI 成了那个任劳任怨修改的好脾气。你依然需要对各种版本进行管理,而这个就是 Git 的核心功能。简单来说,你 Git 一下,就为现在的代码进行一次新的备份。
Git 是程序员的必备技能,它还可以防止 AI 乱修改代码、创建分支、还可以一键推送 GitHub 等。
当然,在 AI 时代,大部分都可以让 AI 来操作,我们需要的是对它有基础的了解,掌握核心功能。
──────────────
🛠️ 1. Git 初始配置
• 下载 Git,官网下载后可以一路默认下一步操作
• 配置用户名和密码
git config --global http://user.name
git config --global http://user.email
配置好后,可以在终端查看:
git -v
git config --list
──────────────
📂 2. 初始化项目
在项目中第一次运行 Git,需要先进行初始化 Git。
方法 1:
• 在 Cursor 中打开你的项目文件夹。
• 打开集成终端(View > Terminal 或 Ctrl+`)。
• 运行命令:git init。这会在项目中创建一个 .git 文件夹,初始化本地仓库。
• (可选)连接远程仓库(如 GitHub):运行 git remote add origin https://github.com/你的用户名/仓库名.git。如果你没有远程仓库,先在 GitHub 创建。
方法 2:
Cursor 中,在 Git 的页面直接选择 initialize Repository
──────────────
💾 3. GIT提交版本,查看版本变动
3.1 添加和提交变更(管理版本):
编辑代码后,在 Cursor 左侧侧边栏点击源控制图标(看起来像一个分支符号)。
在 Source control 源控制面板中,你会看到变更的文件列表。点击文件旁的 + 图标来暂存(Stage)变更,或点击顶部的 + 来暂存所有。
在提交消息输入框中写描述(如“添加登录功能”)。Cursor 的 AI 功能可以帮助生成消息:点击输入框旁的闪光图标(✨),AI 会基于变更和历史自动生成提交消息(支持 Conventional Commits 风格)。
点击“Commit”按钮或运行 git commit -m "消息" 提交。这创建一个新版本。
重复此过程,每次小变更都提交一次,保持原子性。
第一次 commit 的时候出跳出,选择 Always
3.2 查看不同的版本
推荐:在 source contral graph 中,可以查看保存的不同的版本,并且有每个文件的变化
通过命令查看: 在终端运行 git log(显示所有提交历史,包括 ID、作者、消息)。用 git log --oneline 简化显示,或 git show
查看文件特定版本: 右键文件 > Open Timeline,或运行 git blame <文件名> 查看每行代码的提交来源。
比较版本: 在源控制面板,选择两个提交,右键 > Compare Changes 查看差异
──────────────
⏪ 4. 回滚/恢复
4.1 撤销未提交 (commit) 的更改
• Cursor 中的修改有 restore,单次修改的可以恢复
• 在 source control 页面,对于从上次 commit 之后的修改,点击文件名旁边的 discard changes 直接回滚到上次 commit 的状态
通过 Cursor 界面操作:
• 打开左侧源代码管理面板(Ctrl+Shift+G)
• 在 "Changes" 区域找到修改的文件
• 右键点击文件 → 选择 "Discard Changes"(丢弃更改)
• 或点击文件旁边的撤销图标 "↶"
通过命令面板:
• 按 Ctrl+Shift+P 打开命令面板
• 输入 Git: Discard All Changes - 撤销所有更改
• 输入 Git: Discard Changes - 撤销选中文件的更改
通过终端命令:
git restore
git restore . (撤销所有文件的更改)
git restore
4.2 提交历史的回滚与恢复
暂存区是一个缓冲区,让你在提交前能够精心挑选和准备本次要记录的改动。Staged Changes (暂存的更改)
Cursor 提交 commit 的时候,会自动把你“Changes”列表里的所有文件,全部 add 到暂存区,然后立刻执行 commit。
commit-id 可以在 source contral graph 中右击版本,获得。
(1) 硬回滚(完全删除更改)
⚠️ 警告:硬回滚会永久删除更改,请谨慎使用
git reset --hard 会让你的项目文件夹(包括所有 .py 文件)完全恢复到你指定的那个旧版本的状态,并且会删除那之后的所有版本记录。
通过 Git Graph:
• 右键目标提交 → "Reset current branch to this commit" → 选择 "Hard"
通过终端:
git reset --hard
git reset --hard 9fd5c20c1e9d9caa6eebce4edc2bb897e441d181 (硬回滚到指定提交)
git reset --hard HEAD~1 (硬回滚到上一个提交)
(2) 使用 Revert(推荐用于已推送的提交)
revert 不会删除历史,而是会创建一个新的提交,这个新提交的内容刚好是用来抵消掉某个旧提交的改动。
git revert
git revert HEAD (撤销最近的提交)
git revert
(3) 软回滚(保留更改在工作目录)
commit 恢复到上一个或者指定的一个,但是修改的内容不变动。
它的核心作用是:仅仅将版本库的指针(HEAD)移动到你指定的旧版本,但完全不改变你已经写好的代码(工作目录)和已经添加到暂存区的内容。简单来说,就是撤销了 commit。
用于 commit 太多,合并多个凌乱的 commit。
使用 Git Graph 扩展:
安装 "Git Graph" 扩展
在源代码管理面板点击 "Git Graph" 按钮
右键点击目标提交 → 选择 "Reset current branch to this commit"
选择 "Soft" 模式
通过终端:
git reset --soft
git reset --soft HEAD~1 (软回滚到上一个提交)
(4) 混合回滚(保留更改但取消暂存)
git reset
git reset HEAD~1 (回滚到上一个提交)
4.3 分支级别的回滚与恢复
删除本地分支后的恢复
git reflog (查看被删除分支的引用)
git branch
强制推送后的恢复
git reflog show origin/
git reset --hard
git push --force-with-lease
──────────────
🌿 5. 分支 (Branch)
它们在 Git 中是极其轻量和廉价的操作,请大胆地为每一个新任务、新想法、新 Bug 修复创建分支,这是通往高效、安全开发的必由之路。
默认情况下,Git 仓库初始化时会有一个主分支,通常名为 main。
分支的作用与优势:
• 并行开发: 不同功能/修复相互独立,互不干扰。
• 实验隔离: 尝试新方案,不影响稳定代码。
• 代码审查与发布: 通过 PR/MR 合并到主干,触发 CI/CD。
• 回滚与追踪: 每个分支的提交历史清晰,便于定位和回滚。
从技术上讲,分支并不是一个项目文件夹的完整拷贝,那样太浪费空间了。一个分支,本质上只是一个轻量级的、可移动的指针,它指向某一次特定的“提交 (Commit)”。
• main 分支是一个指针,它通常指向项目最新的、最稳定的那个提交。
• 当你创建一个新分支时,你只是创建了一个新的指针,它和你当前所在的提交指针指向同一个地方。
查看分支Cursor 右下角的分支
git branch (查看所有本地分支,当前所在分支会用 * 标记)
git branch -a (查看所有分支,包括远程仓库的分支)
创建分支Cursor 右下角的分支
2.1 从当前的点创建分支
git branch feature-payment (创建一个名为 feature-payment 的新分支,但人还在当前分支)
git checkout -b feature-payment (✨ 强烈推荐:创建并立即切换到新分支,一步到位)
2.2 从指定的点创建第二个分支?
用于创建几个不同的分支方向,假设你当前在另一个分支,但想从 main 的最新状态开始一个新工作:
git checkout -b test2 main
使用 Commit ID (哈希值):最精确的方式。
git checkout -b test3 87be5a4304950ba71c375fdb785e44d3ac2dc7c7
切换分支Cursor 右下角的分支git switch test2 (这是更新的、更推荐的命令,因为它的语义更清晰,只用于切换)
在分支上工作切换到分支后,你的所有 git add 和 git commit 操作都只作用于当前分支。
(在 feature-payment 分支上)
...编写代码...
git add .
git commit -m "feat: add payment processing logic"
合并分支当你完成了分支上的开发,就需要将成果合并回主线。
1. 首先,切换回你的目标分支(通常是 main)
git switch main
2. 拉取一下远程最新代码,确保你的 main 分支是最新状态(好习惯)
git pull
3. 执行合并命令,将 feature-payment 分支的改动合并进来
git merge feature-payment
方法 2:
• 切换到目标分支。
• source control > “...” > “Branch” > “Merge” 选择源分支。
关于合并冲突 (Merge Conflict):如果 Git 在合并时发现,你在 main 分支和 feature-payment 分支上,对同一个文件的同一行代码做了不同的修改,它就不知道该听谁的了,这时就会发生“冲突”。你需要手动打开那个文件,解决冲突(决定保留哪些代码),然后再 add 和 commit 来完成合并。
删除分支分支合并后,通常就可以删掉了,以保持仓库整洁。
git branch -d feature-payment (删除一个已经合并过的本地分支,-d 是 --delete 的缩写,比较安全)
git branch -D failed-experiment-branch (如果分支还没合并,但你确定要强行删除,比如一个失败的实验,使用 -D)
与远程仓库协作
git push -u origin feature-payment (将你的新分支推送到远程仓库,如 GitHub,让其他人也能看到)
git push origin --delete feature-payment (删除远程仓库上的分支,通常在合并到 main 并推送到远程后进行)
──────────────
☁️ 6. GitHub 远程
6.1 首次操作仓库
首次设置:将本地的项目与一个 GitHub 仓库关联起来。
在 GitHub 网站上创建新仓库:• 打开 GitHub 官网,登录你的账号。• 点击右上角的 + 号,选择 New repository。• 给仓库取一个名字(通常和你的项目文件夹名一样)。• 不要勾选 "Add a README file"、"Add .gitignore" 或 "Choose a license",因为我们本地已经有了。• 点击 "Create repository"。
本地关联:创建仓库后,GitHub 会显示一个页面,上面有几行命令。找到标题为 "...or push an existing repository from the command line" 的部分,复制那里的命令。通常是这样的:
echo "# test2" >> http://README.md
git init
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/ishicm/test2.git
git push -u origin main
方法二:
在 souce contral 里面有 push,第一次 push 的时候会让你关联相关的内容,只要填入仓库的链接,例如 https://github.com/ishicm/test2.git
从已有的 GitHub 仓库 -> 本地这个流程更简单。
(1) 在 GitHub 上复制仓库地址:
• 打开你想同步的 GitHub 仓库页面。
• 点击绿色的 <> Code 按钮。
• 复制 HTTPS 或 SSH 地址。
(2) 在 Cursor 中克隆仓库:
方式一(通过欢迎页面):打开一个新的 Cursor 窗口,在欢迎页面上,直接选择 clone,然后粘贴你复制的地址。
方式二(通过命令面板):Cursor 会自动将整个项目下载到你的电脑上。现在,本地和远程就已经关联好了。
6.2 第二次以上操作仓库
Push:
commit
push。方法一:在 cursor 的 source control 中,有多处可以同步,包括 commit 之后出现的 sync changes,左下角的方法二:在终端中输入 git push。
Pull:
在 cursor 的 source control 左下角,直接有个更新的按钮。
然后分为两个情况:
情况 1:本地仓位没有改动过,那么就会直接下载最新的版本
情况 2:本地有代码的改动,那么有可能会冲突,(ps:遇到的时候再查资料)

免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。