一、确保 Git 与 GitHub 账号关联
如果你尚未配置 Git 与 GitHub 账号的关联,请先完成以下步骤:
-
设置 Git 用户信息:
git config --global user.name "你的名字" git config --global user.email "你的 GitHub 邮箱"
-
SSH 认证(推荐):
- 生成 SSH 密钥:
ssh-keygen -t ed25519 -C "你的邮箱"
按回车接受默认路径,可设置密码或留空。
- 查看公钥并复制:
cat ~/.ssh/id_ed25519.pub
- 登录 GitHub,进入 Settings > SSH and GPG keys > New SSH key,粘贴公钥并保存。
- 测试连接:
ssh -T git@github.com
- 生成 SSH 密钥:
-
HTTPS 认证(备选):
- 生成个人访问令牌(PAT):登录 GitHub,Settings > Developer settings > Personal access tokens > Generate new token,选择
repo
权限。 - 推送或拉取时使用 PAT 替代密码。
- 生成个人访问令牌(PAT):登录 GitHub,Settings > Developer settings > Personal access tokens > Generate new token,选择
-
检查远程仓库:
- 确保本地仓库已关联 GitHub 仓库:
git remote -v
- 如果未关联,添加远程仓库:
git remote add origin git@github.com:用户名/仓库名.git
或(HTTPS):
git remote add origin https://github.com/用户名/仓库名.git
- 确保本地仓库已关联 GitHub 仓库:
二、与 GitHub 仓库交互的 Git 命令
以下是你在终端中与 GitHub 仓库交互的完整流程,涵盖拉取、修改、提交和推送:
1. 拉取 GitHub 仓库内容
-
克隆仓库(首次获取): 如果你还没有本地仓库,克隆 GitHub 仓库:
git clone git@github.com:用户名/仓库名.git
或(HTTPS):
git clone https://github.com/用户名/仓库名.git
克隆后,进入仓库目录:
cd 仓库名
-
拉取更新(已有本地仓库): 如果本地已有仓库,进入目录:
cd 仓库路径
拉取远程仓库的最新内容:
git pull origin main
- 替换
main
为你的默认分支(如master
)。 - 如果有冲突,Git 会提示,需手动解决(见下方“处理冲突”)。
- 替换
2. 修改本地文件并同步到 GitHub
假设你在本地用 VS Code 或其他编辑器修改了文件,以下是同步步骤:
-
检查修改状态:
git status
显示已修改(Modified)、新增(Untracked)或删除(Deleted)的文件。
-
添加修改到暂存区:
- 添加特定文件:
git add 文件名
例如:
git add index.html
- 添加所有修改:
git add .
- 添加特定文件:
-
提交修改到本地仓库:
git commit -m "描述你的修改内容"
例如:
git commit -m "更新了主页样式"
-
推送修改到 GitHub:
git push origin main
- 确保分支名(
main
)与远程仓库一致。 - 如果是首次推送新分支,需设置上游分支:
git push --set-upstream origin main
- 确保分支名(
3. 处理冲突
- 如果
git pull
或git push
遇到冲突(例如本地和远程修改了同一文件):- 运行
git pull
时,Git 会标记冲突文件,打开文件,找到<<<<<<< HEAD
和>>>>>>>
标记。 - 手动编辑保留所需内容,删除冲突标记。
- 添加并提交:
git add . git commit -m "解决冲突" git push origin main
- 运行
4. 验证同步
- 推送后,访问 GitHub 仓库页面,确认文件是否更新。
三、典型工作流示例
假设你在本地修改了文件,完整流程如下:
cd 仓库路径
git pull origin main # 拉取最新内容
# 修改文件(用 VS Code 或其他编辑器)
git status # 查看修改
git add . # 添加所有修改
git commit -m "更新内容" # 提交
git push origin main # 推送到 GitHub
四、常见问题与解决方案
-
推送失败(401/403 错误):
- SSH:确保公钥已添加到 GitHub,运行
ssh -T git@github.com
测试。 - HTTPS:使用 PAT 登录,检查是否过期。
- 确认远程 URL 正确:
git remote -v
。
- SSH:确保公钥已添加到 GitHub,运行
-
仓库未关联:
- 检查:
git remote -v
。 - 添加:
git remote add origin git@github.com:用户名/仓库名.git
。
- 检查:
-
分支不匹配:
- 确认远程分支名:
git branch -r
。 - 切换到正确分支:
git checkout main
。
- 确认远程分支名:
-
文件未跟踪:
- 新文件需用
git add 文件名
添加。
- 新文件需用
五、关键知识点供深入学习
-
Git 核心概念:
- 工作区:本地文件。
- 暂存区:
git add
后的修改。 - 版本库:
git commit
后的提交历史。 - 远程仓库:GitHub 上的仓库。
-
常用命令:
git clone
:克隆仓库。git pull
:拉取并合并更新。git add
:添加修改到暂存区。git commit
:提交到本地仓库。git push
:推送至远程仓库。git status
:查看状态。git log
:查看提交历史。
-
分支管理:
- 创建分支:
git branch 新分支名
。 - 切换分支:
git checkout 新分支名
。 - 推送分支:
git push origin 新分支名
。
- 创建分支:
-
学习资源:
- Git 官网:git-scm.com 的 Pro Git 书籍。
- GitHub 文档:docs.github.com,学习 SSH 配置和仓库管理。
- 中文教程:菜鸟教程(runoob.com)或廖雪峰的 Git 教程。
六、快速上手建议
- 实践:克隆一个测试仓库,修改文件,运行
git add
、commit
、push
。 - 定期拉取:修改前运行
git pull
,避免冲突。 - 备份:重要修改前确保提交或备份。
- 用 SSH:配置 SSH 避免频繁输入凭据。