这是我的设置:
我有一个带有托管服务的“主”git 存储库。所有代码都必须在这里结束。称其为“大师”。
由于权限(想要限制用于托管服务的 SSH key 的数量),并且因为我最初开始编码指向另一个存储库,所以我在 VPS 上有一个裸存储库。将此称为“VPS”。
我在本地进行开发,推送到 VPS,定期登录 VPS 并推送到 master。
我遇到的问题是我通过从 master 克隆来部署我的网站。我做了一些改变并将它们推回master。所以现在我需要在 VPS 上执行 git pull ,这样它就能从 master 获取最新的代码。不幸的是,当我尝试这个时,git 告诉我不能用裸存储库来做到这一点。为了让事情变得更复杂,我没有意识到这一点,所以我将一些新代码从开发推送到 VPS,因此 VPS 在日志中丢失了一些提交(即不是所有代码中最新的提交)。
我该如何解决这个问题,以及什么是设置的好方法,以便我可以从 VPS 进行推送和 pull ?
谢谢
--编辑--
好的,所以我需要能够将 VPS 的最后 3 次提交 merge 到 master 的新克隆中。我该如何做到这一点,以及如何在 git 中配置存储库?
最佳答案
git pull
相当于 git fetch
+ git merge
。
merge 显然需要工作副本(以便能够解决冲突(如果有))。
由于在两个裸存储库之间移动内容时您实际上并不想 merge 任何内容( merge 应该在您自己的克隆的工作副本中完成),并且您只想获取分支的新值,因此您应该调用直接git fetch
。
关于git - 无法从一个裸 git 存储库 pull 到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5862015/