推送到远程仓库
当你在此本地完成了提交 (commit) 并希望与他人分享或备份代码时,你需要将这些更改推送 (push) 到远程仓库。
基本推送命令
Section titled “基本推送命令”推送操作显式地将你的本地提交上传到远程仓库。
常用语法: git push <remote> <branch>
git push origin main这条命令的意思是:“把我的本地 main 分支的最新更改,推送到 origin 这个远程仓库的 main 分支上去。”
设置上游分支 (Upstream)
Section titled “设置上游分支 (Upstream)”如果你在新建的仓库中第一次推送,或者推送一个新创建的本地分支,你可能会看到这样的错误:
fatal: The current branch main has no upstream branch.To push the current branch and set the remote as upstream, use
git push --set-upstream origin main这是因为 Git 不知道你当前的本地分支应该对应远程的哪个分支。你需要使用 -u (或 --set-upstream) 参数来建立这种跟踪关系。
# 第一次推送并建立跟踪关系git push -u origin main一旦建立了这种关系(即设置了 Upstream),以后你只需要输入简短的 git push,Git 就知道要把当前分支推送到哪里。
推送被拒绝 (Rejected)
Section titled “推送被拒绝 (Rejected)”有时,你的推送会失败,并提示 [rejected]。
! [rejected] main -> main (fetch first)error: failed to push some refs to '...'hint: Updates were rejected because the remote contains work that you dohint: not have locally.原因:远程仓库包含了一些你本地没有的提交。这通常是因为你的同事(或你在另一台电脑上)已经向远程分支推送了新代码。
解决方法: 根据拒绝原因采取不同措施:
-
远程有新提交(最常见):先获取远程更新,再整合:
Terminal window git fetch origin# 选择合并或变基:git merge origin/main # 合并方式# 或git rebase origin/main # 变基方式(保持线性历史)解决冲突(如有)后,再次
git push。 -
权限不足或分支保护:检查你是否有该分支的写入权限,或该分支是否启用了保护规则(如要求 PR 审核)。
git push <remote> <branch>将本地提交上传。- 使用
-u参数设置上游分支,简化后续命令。 - 如果推送被拒绝,先用
git fetch检查远程状态,再决定merge还是rebase;如果是权限问题,检查仓库设置。