Git 推送强制更改
Azhar Bashir Khan
2022年4月22日
在本文中,我们将看到如何将本地更改强制推送到 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
确保我们不会覆盖其他队友的更改。