【Git】git push(本地仓库的提交推送到远程仓库)
git push 是 Git 中用于将本地仓库的提交推送到远程仓库的核心命令。
·
文章目录
git push 是 Git 中用于将本地仓库的提交推送到远程仓库的核心命令。以下是详细的使用说明和常见场景:
基本语法
git push [远程仓库名] [本地分支名]:[远程分支名]
- 远程仓库名:通常是
origin(默认名称),但也可以是其他自定义名称。 - 本地分支名:要推送的本地分支。
- 远程分支名:远程仓库的目标分支(默认与本地分支同名)。
常用操作
1. 推送当前分支到默认远程仓库
git push
- 如果当前分支已设置上游(upstream),直接推送。
- 若未设置上游,需先指定远程分支(见下文)。
2. 推送指定分支到远程仓库
git push origin main # 推送本地 main 分支到远程 main 分支
git push origin dev:new-dev # 推送本地 dev 分支到远程 new-dev 分支
3. 首次推送并设置上游分支
git push -u origin main # -u 或 --set-upstream
- 将本地分支与远程分支关联,后续可直接用
git push。
4. 强制推送(覆盖远程历史)
git push --force # 强制覆盖远程分支(谨慎使用!)
git push --force-with-lease # 更安全的强制推送(仅当远程未更新时生效)
- 适用场景:本地分支变基(rebase)或修改提交历史后。
- 风险:可能覆盖他人提交,确保团队协作中已沟通。
5. 删除远程分支
git push origin --delete dev # 删除远程 dev 分支
6. 推送所有标签
git push origin --tags # 推送所有本地标签到远程
7. 推送所有分支
git push --all origin # 推送所有本地分支到远程
配置选项
- 默认推送行为:通过
git config设置push.default决定默认行为:git config --global push.default simple # 推荐:仅推送当前分支simple:推送当前分支到同名远程分支(需已关联)。current:推送当前分支到同名远程分支(未关联时自动创建)。upstream:推送到已关联的上游分支。matching:推送所有与远程同名的本地分支(旧版本默认)。
常见问题处理
1. 推送被拒绝(非快进提交)
- 原因:远程分支有本地未合并的提交。
- 解决:
- 先拉取远程更新:
git pull --rebase(推荐变基合并)。 - 解决冲突后重新推送。
- 先拉取远程更新:
2. 查看远程仓库信息
git remote -v # 查看远程仓库地址
git branch -vv # 查看本地分支与远程分支的关联关系
3. 修改默认远程仓库名
git remote rename origin new-name # 将远程仓库 origin 重命名为 new-name
最佳实践
- 推送前先拉取:确保本地与远程分支同步,避免冲突。
- 慎用
--force:尽量使用--force-with-lease减少风险。 - 及时清理分支:删除已合并的远程分支,保持仓库整洁。
遇到问题时,可通过 git push --help 查看完整文档。
更多推荐
所有评论(0)