git push
将本地提交推送到远程仓库
语法
git push [<options>] [<remote>] [<refspec>...]
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
-u --set-upstream |
设置上游跟踪分支 | git push -u origin main |
常用 |
--force |
强制推送(覆盖远程历史) | git push --force |
危险 |
--force-with-lease |
安全的强制推送 | git push --force-with-lease |
进阶 |
--tags |
推送所有标签 | git push --tags |
常用 |
-d --delete |
删除远程分支 | git push -d origin feature-x |
常用 |
示例
推送到远程
git push origin main
首次推送新分支
git push -u origin feature-login
-u 设置跟踪后,以后直接 git push 即可
删除远程分支
git push origin --delete feature-old
安全强制推送
git push --force-with-lease
如果远程有别人的新提交会拒绝,比 --force 安全
常见错误
rejected - non-fast-forward
远程有新提交,先 git pull --rebase 再推送
fatal: The current branch has no upstream branch
用 git push -u origin <branch> 设置上游
技巧
- 永远不要对公共分支用 --force
- 用 --force-with-lease 代替 --force 更安全
- 推送前用 git log --oneline origin/main..HEAD 检查将要推送的提交