Git 推送强制更改

Azhar Bashir Khan 2022年4月22日
Git 推送强制更改

在本文中,我们将看到如何将本地更改强制推送到 Git 中的远程仓库中。

Git 只允许将本地更改推送到远程仓库,这些更改是远程仓库中更改的后代。

在某些情况下,我们可能希望推送并非如此的更改(即)可能先于远程仓库中的更改的更改。

在这种情况下,我们需要使用带有 --force 选项的 git push 命令。

我们现在将用一个例子来说明这一点。

在 Git 中使用 git push --force 强制推送远程仓库中的本地更改

有时在协作开发环境中工作时,我们会遇到在远程仓库中推送一些更改的情况。

现在,我们决定这些更改不再相关,我们希望将新的本地更改推送到远程仓库。

此外,其他一些队友可能已经拉入了我们之前推送的那些远程仓库更改;并且可能在它们之上工作过。随后,他们可能已将更改推送到远程仓库。

Git 通常要求我们首先从远程仓库中拉取可能已由其他队友推送的更改,然后再将新的本地更改推送到其中。

因此,在这种情况下,我们需要使用带有 --force 选项的 git push 命令。该命令的语法是 git push origin <branch_name> --force

假设,我们有一个名为 main 的分支。然后,我们将执行以下操作来强制推动更改。

$ git push origin main --force

警告:这会覆盖自上次推送以来可能已经发生在远程仓库上的更改。

因此,你的队友可能已经在远程仓库上所做的更改将被覆盖。

git push 命令还有另一个选项。 --force-with-lease。将此选项与 git push 一起使用时,将打印一条错误消息,如果远程仓库上已经有一些更改推送,Git 将不会推送更改。

这个选项 --force-with-lease 确保我们不会覆盖其他队友的更改。

相关文章 - Git Push