push
git push的作用是把本地提交推送到远程仓库,让别人能看到改动
git push <远程名> <分支名>
例如
git push origin main
意为
- 把当前本地
main分支的提交推送名为origin的远程仓库,如果远程也有main,就更新它
注意事项
- 如果远程分支比你本地新,
push会被拒绝(避免覆盖别人的提交) - 解决方式
git pull --rebase # 先拉取并在新基础上重放你的提交
# 或者
git merge origin/main
push的原理是把本地提交的对象(commit、tree、blob)上传到远程,更新远程分支指针
常见参数
git push <remote> <branch>将当前分支推送到指定的远程分支
git push origin main
--force或-f强制推送,覆盖远程分支历史,一般用于重写远程分支(例如git rebase后)。谨慎使用,可能会覆盖其他人的更改
git push --force origin main
--force-with-lease强制推送,但会先检查远程分支是否发生了变更,如果变更了就不会覆盖。比--force更安全
git push --force-with-lease origin main
set-upstream或-u将本地分支与远程分支关联。首次推送时常使用此参数
git push --set-upstream origin feature-branch
--all推送所有分支,而不仅仅是当前分支
git push --all origin
--tags推送所有标签到远程仓库
git push --tag
--dry-run模拟推送,查看将会推送什么内容,但并不执行推送操作
git push --dry-run