codecamp

GitHub 推送提交到远程仓库

使用 git push 将本地分支上的提交推送到远程仓库。

git push 命令使用两个参数:

  • 远程命令,如 origin
  • 分支名称,如 master

例如:

git push  <REMOTENAME> <BRANCHNAME>

例如,您通常运行 git push origin master 来推送本地更改到在线仓库。

重命名分支

要重命名分支,同样使用 git push 命令,但要加上一个或多个参数:新分支的名称。 例如:

git push  <REMOTENAME> <LOCALBRANCHNAME>:<REMOTEBRANCHNAME>

这会将 LOCALBRANCHNAME 推送到 REMOTENAME,但其名称将改为 REMOTEBRANCHNAME

处理“非快进”错误

如果仓库的本地副本未同步或“落后于”您推送到的上游分支,您会收到一条消息表示:non-fast-forward updates were rejected。 这意味着您必须检索或“提取”上游更改,然后才可推送本地更改。

有关此错误的更多信息,请参阅“处理非快进错误”。

推送标记

默认情况下,没有其他参数时,git push 会发送所有名称与远程分支相同的匹配分支。

要推送单一标记,可以发出与推送分支相同的命令:

git push  <REMOTENAME> <TAGNAME>

要推送所有标记,可以输入命令:

git push  <REMOTENAME> --tags

删除远程分支或标记

删除分支的语法初看有点神秘:

git push  <REMOTENAME> :<BRANCHNAME>

请注意,冒号前有一个空格。 命令与重命名分支的步骤类似。 但这里是告诉 Git 不要推送任何内容到 REMOTENAME 上的 BRANCHNAME。 因此,git push 会删除远程仓库上的分支。

远程和复刻

您可能已经知道,您可以对 GitHub 上的仓库“复刻”

在克隆您拥有的仓库时,向其提供远程 URL,告知 Git 到何处提取和推送更新。 如果要协作处理原始仓库,可添加新的远程 URL(通常称为 upstream)到本地 Git 克隆:

git remote add upstream  <THEIR_REMOTE_URL>

现在可以从其复刻提取更新和分支:

git fetch upstream
## Grab the upstream remote's branches
> remote: Counting objects: 75, done.
> remote: Compressing objects: 100% (53/53), done.
> remote: Total 62 (delta 27), reused 44 (delta 9)
> Unpacking objects: 100% (62/62), done.
> From https://github.com/octocat/repo
>  * [new branch]      master     -> upstream/master

在完成本地更改后,可以推送本地分支到 GitHub 并发起拉取请求

有关使用复刻的更多信息,请参阅“同步复刻”。

延伸阅读

GitHub 忽略文件
GitHub 从远程仓库获取更改
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

GitHub 身份验证

在 GitHub 上管理订阅和通知

在 GitHub 上管理活动的订阅

GitHub 组织和团队

GitHub 管理对组织仓库的 Git 访问

GitHub 计费和付款

GitHub 使用议题和拉取请求进行协作

GitHub 在具有代码质量功能的仓库上进行协作

管理在 GitHub 上的工作

GitHub 建立强大的社区

GitHub 管理仓库

GitHub 自定义 GitHub 工作流程

在 GitHub Marketplace 中购买并安装应用程序

通过 GitHub Jobs 寻找人才

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }