【问题标题】:Difference between git push -f origin master and git push origin master --force?git push -f origin master 和 git push origin master --force 的区别?
【发布时间】:2015-07-10 03:48:45
【问题描述】:

今天,我试图使用git filter-branch 永久删除所有提交中的文件。之后,我显然需要强制推送,以确保所有协作者都可以在没有此文件的情况下访问存储库。

所以,我尝试了git push -f origin <branch-name>,这给了我通常的“确保您拥有正确的访问权限”错误。

所以,我执行了以下命令:

git push -f origin <branch-name>
git checkout <branch-name>
git push origin <branch-name>:<branch-name> --force

git push origin master --force 之后,它起作用了。为什么以及如何不同?谢谢。

【问题讨论】:

  • 您是否在branch-namemaster 中进行了更改?您的问题对此不清楚。
  • 我对 master 以外的分支进行了更改。我试图通过使用branch-name 使问题更笼统,因为master 是一个分支。如果这改变了问题的答案,那么很抱歉不清楚。

标签: git github version-control push


【解决方案1】:

git push -f &lt;remote&gt; &lt;branch&gt;git push --force &lt;remote&gt; &lt;branch&gt; 之间没有区别。 -f 只是 --force 的简写。

git checkout &lt;branch-name&gt; 结帐&lt;branch-name&gt;。由于您指定了要推送的分支,因此没有任何效果。

git push origin &lt;branch-name&gt;:&lt;branch-name&gt; --force 将本地&lt;branch-name&gt; 中的提交推送到远程&lt;branch-name&gt;。它与git push origin &lt;branch-name&gt; --force 相同,因为分支名称相同。

如果您的一个访问错误但另一个没有,您可能没有使用正确的凭据。

https://git-scm.com/docs/git-push

【讨论】:

  • 我已经更详细地更新了我的问题——很抱歉之前没有包括在内。
猜你喜欢
  • 1970-01-01
  • 2021-04-13
  • 2015-12-08
  • 2017-09-21
  • 2012-09-09
  • 2020-07-30
  • 2023-02-02
  • 2016-04-08
  • 2015-07-03
相关资源
最近更新 更多