Git Push

17 Mar 2025 | 5 分钟阅读

push 术语是指将本地仓库内容上传到远程仓库。Push 行为是将提交从您的本地仓库转移到远程仓库。 Push 能够覆盖更改;在进行 push 时应小心。

Git Push

此外,我们可以说 push 会使用本地引用更新远程引用。每次您 push 到仓库时,它都会使用您所做的一些有趣的更改进行更新。如果我们没有指定仓库的位置,它将 push 到 origin master 的默认位置。

“git push”命令用于 push 到仓库。 push 命令可以被认为是本地仓库和远程仓库之间转移提交的工具。基本语法如下所示

Push 命令支持许多附加选项。一些选项如下所示,位于 push 标签下。

Git Push 标签

<repository>: 仓库是 push 操作的目标。它可以是 URL 或远程仓库的名称。

<refspec>: 它指定要更新源对象的目的 ref。

--all: 单词“all”代表所有分支。它 push 所有分支。

--prune: 它会删除没有本地对应物的远程分支。 意思是,如果您有一个远程分支 say demo,如果此分支在本地不存在,则将被删除。

--mirror: 它用于将仓库镜像到远程。已更新或新创建的本地引用将被 push 到远程端。它可以在远程端强制更新。已删除的引用将从远程端删除。

--dry-run: 模拟运行测试命令。它执行所有操作,除了最初更新仓库之外。

--tags: 它 push 所有本地标签。

--delete: 它会删除指定的分支。

-u: 它创建一个上游跟踪连接。 如果您要首次 push 分支,这将非常有用。

Git Push Origin Master

Git push origin master 是一个特殊的命令行实用程序,它指定远程分支和目录。当您有多个分支和目录时,此命令可帮助您确定您的主分支和仓库。

通常,术语 origin 代表 远程仓库,而 master 被认为是主分支。因此,整个语句“git push origin master”将本地内容 push 到远程位置的 master 分支上。

语法

让我们通过一个例子来理解这个语句。

让我们对我的现有仓库(例如 GitExample2)进行新的提交。我已将图像添加到名为 abc.jpg 的本地仓库中,并提交了更改。请看下图: Git Push

在上面的输出中,我将一张图片附加到我的本地仓库中。 git status 命令用于检查仓库的状态。 git status 命令将执行如下

它显示了未跟踪图像 abc.jpg 的状态。现在,添加图像并提交更改,如下所示

该图像已完全在本地仓库中被跟踪。现在,我们可以将其 push 到 origin master 中,如下所示

输出

Git Push

文件 abc.jpg 已成功 push 到 origin master。我们可以在远程位置跟踪它。我已将这些更改 push 到我的 GitHub 帐户。我可以在我的仓库中跟踪它。请看下图

Git Push

在上面的输出中,被 push 的文件 abc.jpg 已上传到我的 GitHub 帐户的 master 分支仓库中。

Git 强制 Push

git 强制 push 允许您将本地仓库 push 到远程,而无需处理冲突。它的用法如下

-f 版本用作 force 的缩写。 远程可以是任何远程位置,例如 GitHub、Subversion 或任何其他 git 服务,而分支是特定的分支名称。例如,我们可以使用 git push origin master -f。

我们也可以省略此命令中的分支。 该命令将执行如下

我们既可以省略 remote 也可以省略 branch。当 remote 和 branch 都被省略时,默认行为由 git config 的 push.default 设置决定。该命令将执行如下

如何安全地强制 Push 仓库

强制 push 仓库有几个后果,例如它可能会替换您要保留的工作。 如果远程端有您未期望的新提交,则使用租用选项强制 push 可能导致 push 失败。 如果我们用 git 来说,那么我们可以说,如果远程端包含未跟踪的提交,它将导致失败。它可以执行如下

Git push -v/--verbose

-v 代表详细模式。 它以详细模式运行命令。 它 push 仓库并提供了关于对象的详细说明。假设我们已在本地仓库中添加了一个 newfile2.txt,并对其进行了提交。现在,当我们在远程端 push 它时,它将提供比默认 git push 更多的描述。 push verbose 的语法如下所示

语法

考虑下面的输出

Git Push

如果我们将上面的输出与默认 git 选项进行比较,我们可以看到 git verbose 提供了描述性输出。

删除远程分支

我们可以使用 git push 删除远程分支。它允许从命令行删除远程分支。要删除远程分支,请执行以下命令

语法

输出

Git Push

在上面的输出中,git push origin 命令与 -delete 选项一起使用以删除远程分支。我已从仓库中删除了我的远程分支 edited。请看下图

Git Push

这是我远程仓库的活动分支的列表,在操作命令之前。

Git Push

上图显示了删除命令后的活动分支列表。在这里,您可以看到分支 edited 已从仓库中删除。


下一话题Git 访谈