如何在remote上推送到当前git分支,并立即反映更改?
我有两台网络服务器,一台正在测试,一台正在运行。两者都有使用git管理的代码库 我在测试服务器上开发,然后使用如何在remote上推送到当前git分支,并立即反映更改?,git,Git,我有两台网络服务器,一台正在测试,一台正在运行。两者都有使用git管理的代码库 我在测试服务器上开发,然后使用gitpush将更改从测试服务器上的主分支推送到实时服务器。但是,现在我必须登录到live server并运行git reset--hard,以便在live代码中反映更改 我推送时显示的警告消息git建议更改receive.denyCurrentBranch的设置以更改此推送的处理方式。但是,据我所知,我可以让它拒绝推送,接受它时发出警告并要求进行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
会起作用,但是钩子似乎是一个更优雅的解决方案。是的,当然,钩子是最好的方法。有些人被写这些东西吓坏了,所以我想展示一个更好的选择