2016-09-21 65 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