2016-09-21 98 views
1

我一直在與其他幾個人一起開發一個項目,我使用命令行git,並在Netbeans(Mac)中使用git。今天早上他們對主人的推動開始失敗,沒有明顯的原因,而我仍然可以工作。我甚至可以推他們的提交,但他們只能拉。存儲庫在我們的網絡內部託管,他們沒有問題連接到它外面的git,他們沒有問題推到其他分支(我可以拉和合併到主,然後推回沒有任何問題)。Git推命令行而不是netbeans

這是一個日誌。

==[IDE]== 21-set-2016 11.54.00 Committing... finished. 
==[IDE]== 21-set-2016 11.54.26 Pushing - Git-repo 
git branch 
git remote -v 
setting up remote: origin 
git submodule status 
git push path/to/remote/repo 
Remote Repository Updates 
Branch Update : master 
Old Id  : 1c7c9cca6fc8ddcaad4adadb7d0b4379ee8b9775 
New Id  : a093da347b6f7d4b3eceb880dd68da34139dae3a 
Result  : REJECTED_OTHER_REASON 
Local Repository Updates 
Branch Update : master 
Old Id  : 1c7c9cca6fc8ddcaad4adadb7d0b4379ee8b9775 
New Id  : a093da347b6f7d4b3eceb880dd68da34139dae3a 
Result  : NOT_ATTEMPTED 
==[IDE]== 21-set-2016 11.54.29 Pushing - Git-repo finished. 

編輯:我嘗試使用命令行,並得到了一些清晰的錯誤日誌

iMac-di-administrator-2:Git-repo user$ git push origin master 
Total 0 (delta 0), reused 0 (delta 0) 
error: Unable to append to ./logs/refs/heads/master: Permission denied 
To path/to/remote/repo 
! [remote rejected] master -> master (failed to write) 
error: failed to push some refs to 'path/to/remote/repo' 

但同樣,我也相對於權限沒有問題,我們正在與遙控器上的同一個用戶登錄機。

+0

如果他們從命令行推送它會工作嗎? – Mithun

+0

不,我使用命令行錯誤日誌編輯問題 – frollo

+0

感謝您的編輯。執行此命令後重試推送。 'echo ref:refs/heads/master> .git/HEAD'並更新你的結果。 – Mithun

回答

0

我假設其他用戶有足夠的權限,說他們已經使用回購了一段時間纔開始失敗。
修復清潔回購時的錯誤是Unable to append to ./logs/refs/heads/master

git fsck —unreachable 
git reflog expire —expire=0 —all 
git repack -a -d -l 
git prune 
git gc —aggressive 

在此之後推應該理想地工作。

+0

它沒有工作... – frollo

+0

這是文件系統問題的權限。當用戶Y使用用戶Y時,無法推送主服務器的用戶在用戶X上使用git機器進行ssh-ing。他們開始與Y一起工作,然後與另一個用戶一起登錄(Y僅用於git,X有不同的權限,他們需要其他的東西)。謝謝你的耐心。 – frollo

+0

沒問題!很高興知道你解決了這個問題。 :) – Mithun