两种创建仓库的方式
个人开发者从零开始使用 Git 管理项目,有两条路径可选:
方式一:先在远端创建仓库,再克隆到本地。 适合新项目从 GitHub/Gitee 开始的场景。在平台(如 GitHub)上点击 "New Repository",填写名称和可见性(public/private),创建后获取 SSH 地址,然后在本地克隆。
方式二:本地已有代码,初始化 Git 仓库后关联远端。 适合已有项目目录(如通过 npm init 或 Vue CLI 创建的项目)需要纳入版本控制的场景。
方式一:从远端克隆
SSH 密钥配置
使用 SSH 协议与远端仓库通信时,需要先配置密钥对。生成密钥:
# 生成 SSH 密钥(推荐 ed25519 算法)
ssh-keygen -t ed25519 -C "your_email@example.com"
# 查看公钥内容(需要将此内容添加到 Git 平台)
cat ~/.ssh/id_ed25519.pub
bash
将输出的公钥添加到对应平台:GitHub 的 Settings > SSH and GPG keys > New SSH key;Gitee 的设置 > SSH 公钥 > 添加公钥。
HTTPS vs SSH
| 协议 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| HTTPS | 无需额外配置,防火墙友好 | 每次操作可能需要输入用户名密码 | 临时下载、公司内网限制 |
| SSH | 配置一次后无需重复认证 | 需要生成和配置密钥 | 日常开发(推荐) |
GitHub 自 2021 年 8 月起已不支持密码认证,使用 HTTPS 需要配置 Personal Access Token (PAT) 或使用 Git Credential Manager 缓存凭证。
克隆仓库
# SSH 方式(推荐)
git clone git@github.com:username/repo-name.git
# HTTPS 方式
git clone https://github.com/username/repo-name.git
# 克隆到指定目录
git clone git@github.com:username/repo-name.git my-project
bash
在 VS Code 中,点击左侧源代码管理图标 > 克隆仓库,粘贴地址后选择本地存储目录即可。
方式二:本地初始化并关联远端
# 1. 进入项目目录
cd my-existing-project
# 2. 初始化 Git 仓库
git init
# 3. 添加所有文件到暂存区
git add .
# 4. 首次提交
git commit -m "feat: initial commit"
bash
然后在远端平台创建一个空仓库,将本地仓库与远端关联:
# 5. 添加远端仓库地址(origin 是约定俗成的别名)
git remote add origin git@github.com:username/repo-name.git
# 6. 推送代码到远端
git push -u origin main
bash
-u 参数会将本地 main 分支与远端 main 分支建立追踪关系,后续直接执行 git push 即可。
在 VS Code 中,初始化仓库后可以在左下角 Remote 面板点击 "+" 号添加远端地址,效果与命令行操作一致。
配置提交者信息
首次提交前需要配置用户名和邮箱,Git 用这些信息标识每次提交的作者。
# 全局配置(所有仓库生效)
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
# 仅当前仓库配置(覆盖全局设置)
git config user.name "Work Name"
git config user.email "work@company.com"
bash
最佳实践:如果公司项目使用企业邮箱,个人项目使用个人邮箱,建议不在全局设置邮箱,而是在每个仓库中单独配置。这样 Git 会在首次提交时提示你设置,避免用错邮箱。可以通过 git config --list 查看当前所有配置。
日常工作流
个人开发者的日常 Git 工作流非常简单:
# 修改代码后
git add . # 暂存所有变更
git commit -m "feat: 添加新功能" # 提交到本地版本库
git push # 推送到远端
# 在另一台电脑上继续开发
git pull # 拉取远端最新代码
bash
版本切换
查看历史提交记录:
git log --oneline # 简洁模式
git reflog # 查看本地所有操作记录(包括已删除的提交)
bash
切换到某个历史版本:
# 通过哈希值切换
git reset --hard a1b2c3f
# 通过 reflog 找回"消失"的提交
git reflog
git reset --hard <hash>
bash
git reflog 是一个非常有用的命令——即使你执行了 git reset --hard 导致某些提交"消失"了,reflog 仍然记录着这些提交的哈希值,可以用它来恢复。
在 VS Code 中,可以直接在 COMMIT HISTORY 面板右键某个提交 > "Switch to Commit" 来切换版本,但前提是当前工作区没有未提交的修改。
未提交修改时如何切换版本
如果有未提交的修改但需要切换到其他版本查看代码,有两种处理方式:
# 方式一:暂存当前修改(推荐)
git stash # 将当前修改暂存起来
# ... 切换版本、查看代码
git stash pop # 恢复暂存的修改
# 方式二:提交一个临时 commit
git add .
git commit -m "temp: work in progress"
# ... 切换版本、查看代码
bash
git stash 相当于把当前工作区的"脏状态"存入一个栈中,工作区恢复到干净状态后就可以自由切换版本了,用完再 git stash pop 取出来。
↑