Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在remote上推送到当前git分支,并立即反映更改?_Git - Fatal编程技术网

如何在remote上推送到当前git分支,并立即反映更改?

如何在remote上推送到当前git分支,并立即反映更改?,git,Git,我有两台网络服务器,一台正在测试,一台正在运行。两者都有使用git管理的代码库 我在测试服务器上开发,然后使用gitpush将更改从测试服务器上的主分支推送到实时服务器。但是,现在我必须登录到live server并运行git reset--hard,以便在live代码中反映更改 我推送时显示的警告消息git建议更改receive.denyCurrentBranch的设置以更改此推送的处理方式。但是,据我所知,我可以让它拒绝推送,接受它时发出警告并要求进行git重置,或者接受它时不发出警告并要求

我有两台网络服务器,一台正在测试,一台正在运行。两者都有使用git管理的代码库

我在测试服务器上开发,然后使用
gitpush
将更改从测试服务器上的主分支推送到实时服务器。但是,现在我必须登录到live server并运行
git reset--hard
,以便在live代码中反映更改

我推送时显示的警告消息git建议更改
receive.denyCurrentBranch
的设置以更改此推送的处理方式。但是,据我所知,我可以让它拒绝推送,接受它时发出警告并要求进行
git重置
,或者接受它时不发出警告并要求进行
git重置
。我可以让它接受推送,而不是要求重置吗


谢谢

听起来好像你们在推进一个非裸回购协议(也就是说,一个在磁盘上签出了回购协议文件副本的协议)。您可以将其推入,但如果没有
Git重置
(或
Git签出
),Git将不会自动更新工作副本文件。不过,您可以使用post receive钩子自动执行签出操作——有一个很好的操作方法可用。

mipadi是正确的,您确实需要在生产服务器上进行裸repo。如果你对post-commit钩子不满意(很多人都不喜欢)。您可以在运行的服务器上创建cron作业 git拉源主机
每隔半小时左右。

cron作业并不能完全解决我的问题-我仍然只希望通过显式命令将更改推送到实时服务器。也许在cron作业上运行
git reset--hard
会起作用,但是钩子似乎是一个更优雅的解决方案。是的,当然,钩子是最好的方法。有些人被写这些东西吓坏了,所以我想展示一个更好的选择