使用远程仓库
远程仓库让你可以与他人协作并备份你的代码。
添加远程仓库
# 添加远程仓库(通常称为 "origin")
git remote add origin https://github.com/user/repo.git
# 查看远程仓库
git remote -v
推送更改
将你的本地提交发送到远程:
# 推送到远程
git push origin main
# 首次推送并设置上游跟踪
git push -u origin main
# 使用 -u 后,只需使用:
git push
获取更改
下载远程更改但不合并:
git fetch origin
# 查看更改内容
git log origin/main --oneline
拉取更改
一步完成获取和合并:
git pull origin main
# 或如果已设置上游:
git pull
pull = fetch + merge
使用变基拉取
保持线性历史:
git pull --rebase origin main
跟踪分支
# 查看跟踪关系
git branch -vv
# 为当前分支设置上游
git branch -u origin/main
使用 Fork
- 在 GitHub 上 Fork 仓库
- 克隆你的 fork:
git clone https://github.com/YOUR-USERNAME/repo.git
- 添加上游远程:
git remote add upstream https://github.com/ORIGINAL-OWNER/repo.git
- 保持你的 fork 更新:
git fetch upstream
git checkout main
git merge upstream/main
git push origin main
Pull Request 工作流程
- 创建功能分支:
git checkout -b feature-xyz
- 进行更改并提交:
git add .
git commit -m "Add feature XYZ"
- 推送到你的 fork:
git push -u origin feature-xyz
-
在 GitHub 上创建 Pull Request
-
PR 合并后,清理:
git checkout main
git pull upstream main
git branch -d feature-xyz
git push origin --delete feature-xyz
常用远程命令
# 列出远程仓库
git remote -v
# 显示远程仓库详情
git remote show origin
# 重命名远程仓库
git remote rename origin upstream
# 删除远程仓库
git remote remove origin
# 清理已删除的远程分支
git fetch --prune
处理被拒绝的推送
如果你的推送被拒绝,因为远程有新提交:
# 选项 1: 拉取并合并
git pull origin main
git push origin main
# 选项 2: 使用变基拉取(更干净)
git pull --rebase origin main
git push origin main
永远不要强制推送到共享分支!
# 仅在变基后用于自己的分支
git push --force-with-lease origin feature-branch
总结
| 命令 | 描述 |
|---|---|
git remote add <name> <url> | 添加远程仓库 |
git push | 推送提交 |
git fetch | 下载更改 |
git pull | 获取并合并 |
git pull --rebase | 获取并变基 |
git remote -v | 列出远程仓库 |
恭喜!你已完成 Git 基础课程。你现在拥有日常 Git 工作流所需的所有工具。
快速参考卡片
# 日常工作流程
git status # 检查更改内容
git add . # 暂存所有更改
git commit -m "message" # 提交
git push # 与团队分享
# 分支
git switch -c feature # 新分支
git switch main # 返回 main
git merge feature # 合并分支
# 与远程同步
git pull # 获取最新
git push # 分享更改
编码愉快!