【发布时间】:2020-06-27 10:07:57
【问题描述】:
我正在学习和调整集成 Git 的工作流程。我的愿望是能够将我的开发分支从我的本地终端推送到我的测试服务器。一旦我分支,我当前的设置就会给我一个错误。我觉得这不是一个错误,而是 Git 完成了它的工作,而我并没有完全理解它。 您能否解释为什么会发生这种情况以及如何避免?
Git“错误”
! [remote rejected] feature -> feature (branch is currently checked out)
error: failed to push some refs to (I hide the ssh server address)
我是怎么遇到这种情况的:
- 在 github 上创建 repo
- 包括从我的服务器通过 cpanel 生成的部署密钥
- 本地机器上的 Git 克隆
- 通过 SSH 在服务器上进行 Git 克隆
- 将服务器作为远程服务器添加到作为测试的存储库中
流程
-
在本地调整 master,将其推送到 github 和服务器都可以正常工作。但我的理解是,Git 的强大之处在于为“功能”创建一个分支 > 测试它 > 将其合并到 master 中。
-
我在本地机器上创建了一个名为 feature 的分支
git checkout -b feature
- 对 repo 进行一些更改并将其推送到源并进行测试
git add .
git commit -m 'added index.html'
git push origin feature (for backup/sync purposes)
git push test feature (to be able so see my code working on the test server
-
我必须“签出”新分支才能显示服务器上的文件,所以我通过 SSH 连接到我的服务器并签出新分支:
git checkout feature
我的想法是,从现在开始,我可以在本地处理功能分支 > 提交调整并使用简单的推送命令
git push test feature我可以在我的测试服务器上测试代码。
打破常规
但是现在我的流程被打破了。在我检查服务器上的功能分支后,我无法将调整后的分支推送到远程测试。 Git 返回如上所示的消息。
【问题讨论】:
标签: git github deployment version-control web-deployment