2015-07-10 730 views
0

今天,我試圖使用git filter-branch永久刪除所有提交中的文件。之後,我需要明確強制推送,以確保所有協作者都可以在沒有此文件的情況下訪問存儲庫。git push -f origin master和git push origin master之間的區別--force?

所以,我試着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後,它的工作。爲什麼以及這有什麼不同?謝謝。

+2

您是否對'branch-name'或'master'進行了更改?你的問題不清楚。 –

+0

我對主分支以外的分支進行了更改。由於'master'是一個分支,我試圖通過使用'branch-name'來使問題更一般化。如果這改變了這個問題的答案,那麼很抱歉不清楚。 – Hunle

回答

1

git push -f <remote> <branch>git push --force <remote> <branch>之間沒有區別。 -f只是--force的簡寫。

git checkout <branch-name>結帳退出<branch-name>。由於您指定了要推送的分支,因此沒有任何效果。

git push origin <branch-name>:<branch-name> --force將您在當地的<branch-name>中的提交推送到遙控器的<branch-name>。由於分支名稱相同,因此與git push origin <branch-name> --force相同。

如果您遇到了訪問錯誤,但沒有訪問其他錯誤,那麼您可能沒有使用正確的憑據。

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

+0

我已更新我的問題更詳細的信息 - 遺憾的是不包括此前。 – Hunle

+0

我同意他可能使用了錯誤的憑證。 –

相關問題