2013-04-04 318 views
2

我找不到我的問題工作液:刪除遠程犯git的

如何刪除提交在本地以及在遠程存儲庫。 這是一個solution。但是當我嘗試這個時,我可以在我的本地存儲庫中使用reset命令返回。但我無法推動它。錯誤消息說: remote: error: denying non-fast-forward refs/heads/master (you should pull first) 但在pull後,我的主人再次指出我想要刪除的提交。

你能幫忙嗎?

編輯 - 我嘗試:

$ git reset --hard HEAD^1 
HEAD is now at 1c50f9c good commit 

$ git push -f 
Total 0 (delta 0), reused 0 (delta 0) 
remote: error: denying non-fast-forward refs/heads/master (you should pull first) 
To E:/reps/gf.git 
! [remote rejected] master -> master (non-fast-forward) 
error: failed to push some refs to 'E:/reps/gf.git' 
+0

我試着用'git push -f'和'git push --force'。它不適合我。 – bLAZ 2013-04-04 09:51:01

回答

3

你的遠程倉庫可能有禁止非快速向前推在服務器端的設置。你有兩個選擇:

  1. 聯繫服務器管理員,說明您的情況,並要求他們(臨時)撤銷無快進推政策,像git config receive.denyNonFastForwards。 (您仍然需要-f標誌來推動。)

  2. 使用git revert代替git reset,並推動所產生的承諾。提交及其反轉都是可見的,但有時這是無法避免的。除非原始提交包含敏感數據,否則這應該是一個大問題 - git提交會一直恢復。如果原始提交確實包含敏感數據,請參閱選項1.

+0

我有其他硬盤上的git遠程倉庫,所以我可以配置它。我試着用命令:'git config --system receive.denyNonFastForwards false',但它沒有幫助。 – bLAZ 2013-04-04 10:15:57

+0

最後它在我使用'git config receive.denyNonFastForwards false'時有效。非常感謝! – bLAZ 2013-04-04 10:57:32

+1

@bLAZ我已經更新了包含配置調用的答案。 – user4815162342 2013-04-04 11:30:03