关于SO的类似问题的答案似乎始终是"在推动之前合并/拉动"或者"不要首先进入这种情况"。这些都不适用。
我继承了一个网站的维护,其中正在进行的开发已经从旧网站的维护中分支出来。但是,我发现传统修复程序并不总是在本地进行 - > git-> test->直播。有时它们是测试 - >直播,跳过git,有时它们直接用于Live。
因此,Live环境与任何git提交,测试服务器和本地环境都不完全匹配。这是一个问题。
我创建了现在如何生活是一个新的分支,但是当我试图推,git的拒绝 - 自称改变了到中央资源库做了,和"非快速向前更新被拒绝&#34 ;
我不想合并到直播服务器中。我认为未发生的变化是发展性的(正确的分支管理并不总是非常严格地遵循),但即使中心有一些应该存在的修复,实时服务器也不是执行合并。
答案似乎是" git push --force"来自实时,处理合并和当地的一般git清理。
但我以前没有使用过--force,而且在我寻找答案时,它似乎有时与人们的期望不同。
所以,我需要进行健全检查。将:
git checkout -b new_branch_name
git add -u
git add *
git commit -m "new branch to match how live is currently"
git push --force
将我的新分支机构推送到中央存储库,确切地说是我在运行命令的服务器上的运行方式,而不会影响其他任何分支?
相反,有没有更好的方法来处理清理git存储库,以及匹配实时的测试环境?
由于这是实时服务器,我不能只是尝试它,看看它是否正常工作。
答案 0 :(得分:1)
这是我最终做的事情:
为了避免在现场网站上尝试以后如何 - 我认为-git-works-but-I-yet-actually-did-this-trick-my,我从当前内容创建了一个新的本地回购实时服务器。从这里开始,我可以看到 - 在我的本地驱动器上 - 在回购之间比较和移动分支,直到我清理了这个混乱。
不要接受我的答案,以防有更多知识的人发布更好的答案。