初始化与克隆仓库
VS Code 操作
通过侧边栏的 “源代码管理” (Source Control) 视图,你可以轻松初始化或克隆项目。
Git Bash 命令
使用命令行进行项目的初始化或将远程仓库下载到本地。
git init
git clone https://github.com/user/repo.git
暂存与提交更改
VS Code 操作
点击文件旁边的 + 号进行暂存,在输入框填写信息后点击 提交 (Commit)。
Git Bash 命令
分为两步:先 `add` 暂存(对应 VS Code 的 + 号),后 `commit` 提交。
git add .
git commit -m "feat: add index page"
git commit -am "update"
分支管理
VS Code 操作
点击 VS Code 窗口**左下角**的状态栏上的当前分支名(例如 `main` 或 `master`),会在顶部弹出分支列表和创建选项。
Git Bash 命令
使用 `branch` 查看或创建,使用 `checkout` 或 `switch` 切换分支。
git branch
git checkout -b feature/login
git checkout main
拉取与推送 (Pull & Push)
VS Code 操作
完成 Commit 后,点击源代码管理面板的 **"同步更改" (Sync Changes)** 按钮,VS Code 会自动先 Pull 后 Push。
Git Bash 命令
如果多人协作,推送前应该养成先拉取 (pull) 最新代码的好习惯。
git pull origin main
git push origin main
git push -u origin feature/login
储藏更改 (Stash)
VS Code 操作
当你正在开发一半,突然需要切换分支修 Bug,但不去提交这半成品代码,可使用储藏。点击面板顶部的 `...` (更多) -> 储藏 (Stash)。
Git Bash 命令
Stash 可以理解为“草稿箱”,把当前未完成的改动打包放起来,工作区变干净。
git stash
git stash list
git stash pop
解决冲突 (Merge Conflict)
VS Code 操作
合并分支或拉取代码产生冲突时,VS Code 会在源代码管理面板高亮显示有冲突的文件(标记为 C)。点击文件可进入直观的三向合并视图。
解决冲突后,保存文件,点击 + 号暂存,然后正常提交即可完成合并。
Git Bash 命令
命令行解决冲突需要手动编辑文件,删除合并标记(`<<<<<<<` 等),保留需要的代码,然后提交。
git status
git add config.js
git commit
git merge --abort
标签管理 (Tags)
VS Code 操作
通过点击源代码管理面板顶部的 `...` (更多) -> 标签 (Tags) -> 创建标记 (Create Tag)。
Git Bash 命令
常用于发布版本(如 v1.0.0)。注意:默认的 `git push` 不会推送标签。
git tag v1.0.0
git tag -a v1.0.0 -m "Release version 1.0.0"
git push origin v1.0.0
远程仓库管理 (Remote)
VS Code 操作
通过点击 `...` -> 远程 (Remote) -> 添加远程存储库... (Add Remote) 或删除远程。
Git Bash 命令
查看、添加或修改关联的 GitHub/GitLab 仓库地址。
git remote -v
git remote add origin https://github.com/user/repo.git
git remote set-url origin git@github.com:user/repo.git
查看历史与撤销
VS Code 操作
VS Code 原生支持基础历史查看。更推荐安装扩展 GitLens 或 Git Graph 获得强大的时间线和可视化树状图。
放弃更改:在源代码管理区,点击文件旁的 (放弃更改/Discard Changes)。
Git Bash 命令
查看历史及硬/软回退(危险操作请谨慎)。
git log --oneline
git restore .
git revert HEAD
git reset --hard HEAD~1
版本回退 (Reset & Revert)
VS Code 操作
在“时间线”或使用 GitLens 插件的历史记录中,右键点击特定的提交记录,可以选择回退或撤销。
💡 重置 (Reset): 改变时间线,像没发生过一样(分软重置保留代码,硬重置删代码)。
💡 还原 (Revert): 新增一个反向提交,用来抵消之前的修改(最安全,推荐)。
Git Bash 命令
根据是否已经推送到远程,选择安全的撤销方式。
git revert 1a2b3c4
git reset --soft 1a2b3c4
git reset --hard 1a2b3c4
挑选提交到其他分支 (Cherry-pick)
VS Code 操作
场景:你在 feature-A 分支修复了一个 Bug,现在想把这个修复单独拉取到 main 分支,但不想合并整个 feature-A。这叫“摘樱桃 (Cherry-pick)”。
- 先切换到目标分支 (例如
main)。 - 在侧边栏找到包含目标提交的源分支 (例如
feature-A)。 - 展开分支找到那个特定的提交记录。
- 右键点击该提交,选择 "挑选提交 (Cherry Pick Commit...)"。
Git Bash 命令
通过命令行操作非常快捷,只需要知道那个提交的 Hash 值(前几位即可)。
git log --oneline
git checkout main
git cherry-pick 8f2a1b9
案例一:本地单机开发标准流程
场景:你有一个个人的独立项目,暂不需要推送到 GitHub,只需在本地进行版本控制防丢失。
项目初始化
打开新文件夹,将其转化为 Git 仓库。
编写代码
在编辑器中新建文件、敲代码并保存 (Ctrl+S)。
暂存更改
将确定要保存的修改放入“候车室”。
提交版本
为这次修改打上标签,正式存入本地仓库历史。
查看记录/循环开发
确认提交成功,然后继续进行下一轮的“写代码 -> 暂存 -> 提交”。
案例二:云端团队协作标准流程
场景:入职新公司或参与开源,你需要把别人的代码拉下来,开发自己的功能,最后安全地合并回去。
克隆远端代码
第一天上班:把公司云端(GitHub/GitLab)的项目下载到电脑。
创建特性分支
不要直接在 main 分支改!为你负责的功能创建一个新分支。
开发并本地提交
进行开发,并像“单机流程”一样完成 add 和 commit 操作。
❯ git commit -m "完成登录接口对接"
拉取最新代码 (关键)
在推送前,必须先拉取云端别人可能已经更新的代码,如果有冲突在本地解决。
推送分支到云端
将你开发好的 feature 分支推送到远程仓库。
发起合并请求 (PR / MR)
登录 GitHub/GitLab 网页端,向主干分支发起 Pull Request,让同事帮你 Review 代码后合并。