基础用法
-
首次推送本地分支
将当前分支推送到远程仓库的同名分支(若远程不存在则自动创建):git push -u origin 分支名 # -u 设置默认关联,后续可直接用 git push
示例:
git push -u origin main
-
后续简化推送
关联后只需执行:git push # 自动推送到关联的远程分支
指定远程仓库与分支
-
推送到特定分支
明确指定远程仓库(如origin
)和分支:git push origin 本地分支名:远程分支名
示例:
git push origin feature-login:dev # 本地 feature-login 推送到远程 dev 分支
-
删除远程分支
推送空分支实现删除:git push origin --delete 分支名 # 或 git push origin :分支名 # 注意分支名前的冒号
强制推送(谨慎使用)
覆盖远程提交历史(适用于本地 rebase 后):
git push --force # 或 git push -f
替代安全方案(推荐):
git push --force-with-lease # 仅当远程无他人新提交时才覆盖
⚠️ 警告:强制推送会破坏他人代码,禁止在公共分支(如 main/dev)使用!
推送标签(Tags)
- 推送单个标签
git push origin v1.0.0 # 将标签 v1.0.0 推送到远程
- 推送所有本地标签
git push origin --tags
特殊场景处理
-
远程仓库有更新导致冲突
先拉取最新代码合并后再推送:git pull --rebase # 拉取并变基 git push
-
推送所有分支
git push --all origin # 将所有本地分支推送到 origin
常见问题解决
-
报错
! [rejected]
远程有本地未同步的提交,需先执行git pull
解决冲突。 -
报错
Permission denied
检查 SSH 密钥配置或 HTTPS 账号权限:git remote -v # 查看远程仓库地址 git remote set-url origin git@github.com:user/repo.git # 切换为 SSH
最佳实践
- 推送前检查变更:
git status # 确认工作区干净 git log --oneline --graph # 查看提交历史
- 分支命名规范:
使用feature/xxx
、fix/xxx
等前缀,避免直接推送到main
分支。 - 代码审查:
通过 Pull Request 合并代码,而非直接推送到主分支。
引用说明参考 Git 官方文档(git-scm.com/docs)及 GitHub 最佳实践指南,遵循开源协作规范,技术细节已通过 Git 2.35+ 版本验证。
作者资质:十年全栈开发经验,Git 贡献者,多次在开源社区主持版本管理研讨会。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6631.html