有人可以通过示例告诉我何时使用git push
以及何时使用git push -f
?
答案 0 :(得分:7)
push --force
有一种情况,即使对于初学者也是如此:当您更新拉取请求时。
拉取请求意味着
但是:如果该原始仓库已经进行了自己的新提交,则需要在更新的"上游"之上重新设置(重播您的提交)。回购
git remote add upstream /url/original/repo
git checkout my_pr_branch
git rebase upstream/master
# test everything is still working
通过重新定位,您正在更改新提交的SHA1:您需要通过重新提交的提交替换PR分支的已发布(推送)提交:
git push --force
这将更新现有的Pull Request,它将考虑这些提交的新版本
由于您强行推送到自己的仓库(分叉)和您自己的分支(PR分支),您可以根据需要使用--force
。
我提出了force-with-lease in 2013,作为检测您想要强制推送的远程仓库是否发生任何事情的方法。
请注意,它变为more robust recently with Git 2.13。