use*_*864 5 git wordpress git-push git-add git-remote
我正在尝试为具有本地版本,登台版本和生产版本的Wordpress安装设置“简单” git工作流。我要做的就是在本地进行更改,然后从本地推送到暂存,从本地推送到生产。起初,我认为这将是一个简单的任务。我已经能够初始化存储库,添加两个远程“ staging”和“ production”,在远程控制器上初始化git,并通常使用以下命令将更改从本地版本推送到暂存和生产服务器:
git add .
git commit -m "some changes"
git push staging master
git push production master
Run Code Online (Sandbox Code Playgroud)
但是,在工作期间的某些时候,发生了一些变化,尽管我仍然可以推送到暂存,但是现在我无法在没有出现错误的情况下推送到生产服务器:
! [remote rejected] master -> master (Working directory has unstaged changes)
Run Code Online (Sandbox Code Playgroud)
当我执行“ git status”时,它说:
On branch master
nothing to commit, working tree clean
Run Code Online (Sandbox Code Playgroud)
在阅读了关于堆栈溢出的几个相似但不同的问题的答案之后,我尝试了以下方法:
git pull staging master
git pull staging master --rebase
git pull production master
git pull production master --rebase
Run Code Online (Sandbox Code Playgroud)
我也尝试在远程服务器上执行此命令
git config --local receive.denyCurrentBranch updateInstead
Run Code Online (Sandbox Code Playgroud)
我已经完全重新创建了几次服务器和存储库,只是为了完全从头开始重新安装git,但是此问题在一段时间后仍会继续发生,此时,Git实际上正在浪费我的工作流程而不是提供帮助。如果有人对我的错误有任何了解,将不胜感激!
我遇到了类似的问题,被推到一个非裸露的远程仓库中,我希望立即检查工作副本文件。我的遥控器配置了receive.denyCurrentBranch updateInstead,但是它仍然拒绝在不可预测的时间进行推送。
Git 2.4添加了一个push-to-checkout钩子,该钩子可以覆盖此类push失败。我根据githooks文档中的示例编写了一个简短的脚本。
#!/bin/sh
set -ex
git read-tree --reset -u HEAD "$1"
我.git/hooks/push-to-checkout在远程仓库中安装了此脚本。请注意,此脚本将覆盖远程服务器中的工作副本-它不会尝试将对这些文件的任何更改合并。这是因为我希望工作副本仅反映存储库中的文件。
制作 git bare 存储库是推动的最佳实践。
您可以推送到非裸文件...但前提是您在从源端推送文件时没有修改目标端的文件。请参阅推送部署。
但最佳实践仍然是添加一个接收后挂钩(如我的其他答案中所示),以便在实际文件夹中签出您收到的所有文件。
| 归档时间: |
|
| 查看次数: |
3186 次 |
| 最近记录: |