推送与拉取
约 566 字大约 2 分钟
布欧-Lewyon
2026-05-15
首页 › Git › 远程仓库(在新窗口打开) › 推送与拉取
git push
# 推送到远程仓库
git push origin main
# 设置上游并推送
git push -u origin main
# 推送所有分支
git push --all origin
# 推送标签
git push --tags origin
# 强制推送(谨慎使用)
git push --force origin feature
# 带 Lease 的强制推送(更安全)
git push --force-with-lease origin feature
# 删除远程分支
git push origin --delete feature-login推送失败的处理
# 远程有新的提交,本地落后时推送被拒绝
# error: failed to push some refs
# hint: Updates were rejected because the remote contains work that you do not have locally.
# 方案一:先拉取再推送
git pull origin main
git push origin main
# 方案二:强制推送(覆盖远程,谨慎)
git push --force-with-lease origin featuregit fetch
只获取远程数据,不自动合并:
# 获取所有远程分支的最新状态
git fetch origin
# 获取特定分支
git fetch origin feature-login
# 获取并删除本地已删除的远程分支引用
git fetch --prune origin
# 查看获取后的远程分支
git branch -rgit pull
git pull = git fetch + git merge(默认):
# 从上游分支拉取并合并
git pull
# 完整写法
git pull origin main
# 使用 rebase 替代 merge
git pull --rebase origin main
# 配置默认用 rebase
git config --global pull.rebase truefetch vs pull
# fetch:安全地查看远程更新,不影响当前工作区
git fetch origin
git log origin/main..main # 查看本地领先于远程的提交
git log main..origin/main # 查看远程领先于本地的提交
# pull:fetch + merge,直接更新工作区
git pull推荐流程
# 1. 拉取最新代码
git fetch origin
# 2. 查看差异
git log main..origin/main --oneline
# 3. 合并(或 pull)
git merge origin/main
# 或
git pull
# 4. 推送
git push origin main小结
git push origin main推送本地提交到远程。git push --force-with-lease比--force更安全。git fetch只获取数据不合并;git pull= fetch + merge。git pull --rebase用 rebase 替代 merge,历史更线性。- 推荐先
git fetch查看差异,再决定合并或 rebase。
上一节:远程仓库管理 下一节:git reset 与 revert
