2011-11-29 115 views
1

最近,每当我做一个混帐推我得到一个交换这样的:是什么导致这个git警告?

owner-pc ~/dev/project $ git push 
Counting objects: 15, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (8/8), done. 
Writing objects: 100% (8/8), 3.15 KiB, done. 
Total 8 (delta 6), reused 0 (delta 0) 
remote: Pulling changes into edge... 
remote: From /var/git/project 
remote: * branch   master  -> FETCH_HEAD 
remote: error: Your local changes to 'config/development.php' would be overwritten by merge. Aborting. 
remote: Please, commit your changes or stash them before you can merge. 
remote: Updating 1984db9..d584535 
remote: Changes have been pulled and applied to edge. 
To ssh://dev.trueaction.com/var/git/project 
    a3a085e..8ec5b07 styleguide -> styleguide 

...但显然推完成,没有错误,一切工作正常。 config/development.php没有本地更改,也没有一段时间。在提交时,我不会收到任何错误或警告,只有在推送时,而不是在拉。

什么原因导致错误? (它就像一个警告,但是他说,这是一个错误,所以我用这个词去。)

+2

有关本地更改的消息正由远程设备发送。你是否推动一个非裸回购?那个远程仓库有更改'config/development.php'的签出副本吗? –

+0

@robmayoff我在哪里可以找到该文件的远程回购副本?推测它不是'/ var/git/project',因为它已经有一个名为'config'的文件。 – kojiro

+0

'ssh dev.trueaction.com“cd/var/git/project && git status”'的输出是什么? –

回答

1

“错误”发生在post(-receive)钩子中(正如remote:前缀所证明的那样),钩子正在将您推入其他repo的代码拉出来,并且repo具有一些本地修改,错误。

由于post-receive钩子不会影响push的结果(因为它们是在push之后发生的),所以push本身没有问题,但hook作为post-receive的一部分尝试失败到当地的变化。

找到发生拉的地方(在/ var/git/project/hooks /找到post-receive或其他一些活动的钩子并查看它在做什么)并删除本地修改。

1

从你的输出看 - 你推到非裸露的回购协议,有人编在远程的config/development.php。这是产生你所看到的交流的原因。

相关问题