master (Working directory has unstaged changes)"-6ren"> master (Working directory has unstaged changes)"-我正在尝试为具有本地版本、暂存版本和生产版本的 Wordpress 安装设置一个“简单”的 git 工作流。我想做的就是在本地进行更改,然后从本地推送到暂存,再从本地推送到生产。起初我认为这将是一项简-6ren">
gpt4 book ai didi

wordpress - Git - 无法推送 - "! [remote rejected] master -> master (Working directory has unstaged changes)"

转载 作者:太空狗 更新时间:2023-10-29 13:21:25 25 4
gpt4 key购买 nike

我正在尝试为具有本地版本、暂存版本和生产版本的 Wordpress 安装设置一个“简单”的 git 工作流。我想做的就是在本地进行更改,然后从本地推送到暂存,再从本地推送到生产。起初我认为这将是一项简单的任务。我已经能够初始化存储库,添加两个远程“暂存”和“生产”,在远程初始化 git 并将更改从我的本地版本推送到暂存和生产服务器,通常使用以下命令:

git add .
git commit -m "some changes"
git push staging master
git push production master

但是,在我工作期间的某个时刻,发生了一些变化,虽然我仍然能够推送到暂存服务器,但现在我无法在不收到错误的情况下推送到生产服务器:

! [remote rejected] master -> master (Working directory has unstaged changes)

当我执行“git status”时,它说:

On branch master
nothing to commit, working tree clean

在阅读了 Stack Overflow 上几个相似但不同问题的答案后,我尝试了以下方法:

git pull staging master
git pull staging master --rebase
git pull production master
git pull production master --rebase

我也试过在远程服务器上执行这个命令

git config --local receive.denyCurrentBranch updateInstead

我已经完全重新创建了服务器和存储库几次,只是为了从头开始完全重新安装 git,但是这个问题在一段时间后一直发生,此时 Git 实际上是在损害我的工作流程而不是帮助它。如果有人知道我的错误是什么,将不胜感激!

最佳答案

我有类似的问题,推送到一个非裸远程仓库,我希望工作副本文件立即被 check out 。

我的 Remote 配置了 receive.denyCurrentBranch updateInstead,但它仍然拒绝在不可预测的时间接受推送。

Git 2.4 添加了一个 push-to-checkout钩子(Hook),它可以覆盖此类推送失败。

我根据 githooks documentation 中的示例编写了一个简短的脚本.

#!/bin/sh
set -ex
git read-tree --reset -u HEAD "$1"

我在远程仓库的 .git/hooks/push-to-checkout 中安装了这个脚本。

请注意,此脚本会覆盖远程中的工作副本——它不会尝试 merge 对这些文件的任何更改。

那是因为我希望工作副本只反射(reflect)存储库中的文件。

关于wordpress - Git - 无法推送 - "! [remote rejected] master -> master (Working directory has unstaged changes)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48413102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com