在推送时,我收到“由合并覆盖”错误。我相信它是由更新后的钩子引起的。我可以绕过吗?

问题描述 投票:1回答:1

我有一个文件,filename.html,我已经做了一些更改,我想推动提交。所以我做了更改,添加并提交了它们。每当我推动时,我得到以下输出:

Enumerating objects: 9, done. Counting objects: 100% (9/9), done. Delta compression using up to 4 threads Compressing objects: 100% (5/5), done. Writing objects: 100% (5/5), 439 bytes | 439.00 KiB/s, done. Total 5 (delta 4), reused 0 (delta 0) remote: remote: **** Pulling changes into Live [Hub's post-update hook] remote: remote: From /var/git/html remote: * branch master -> FETCH_HEAD remote: error: Your local changes to the following files would be overwritten by merge: remote: filename.html remote: Please, commit your changes or stash them before you can merge. remote: Aborting remote: Updating c987b05..583872c To website.com:/var/git/html.git 76ad8aa..583872c master -> master

我试过git reset --hard,我试图强行推。我试过git push origin master --no-verify。我试图隐藏这些变化。没有成功。

为了清楚起见,我可以对项目中的所有其他文件进行更改并推送提交。只有这一个特定的文件,如果我做出并提交更改,将不会让我推动。

从我在这里问到的另一个问题,我被告知可能是更新后的钩子导致拉动,这就是错误发生的地方。但是,我无法找到解决办法。我没有在这个项目上设置git,而那个开发者已经离开了公司。 git的设置方式是,当推送时,通过ftp推送更改以更新开发站点。

有没有办法绕过这个钩子,所以我可以推?我不知道这个问题有更好的解决办法吗?

在此先感谢,这个让我难过。

git gitlab githooks
1个回答
1
投票

好吧,经过大量的研究和反复试验,我终于解决了这个问题。基本上,当你执行git push时,git被设置为更新开发站点。该系统基本上与描述here的系统相同

所以我做的是替换了原始的帖子更新钩子,这是链接文章中描述的那个,用这个:

#!/bin/sh echo echo "**** Pulling changes into Live [Hub's post-update hook]" echo cd /var/www/html || exit unset GIT_DIR git fetch --all git reset --hard hub/master git pull hub master exec git-update-server-info

在此之后,我终于能够通过原始帖子中列出的错误,现在一切都顺利运行。

© www.soinside.com 2019 - 2024. All rights reserved.