我克隆了一个Git master并对克隆做了很多改动.我已经在克隆上进行了这些更改,现在希望主人成为克隆上的内容的副本.
我已经尝试使用Git推送克隆来将更改推送到主服务器 - 但我没有更新主服务器.
如何让master成为克隆上的内容的精确副本?更新克隆并与克隆主同步的命令工作流程是什么?
有两种git存储库,裸和非裸.非裸存储库是任何具有"工作副本"的存储库,即当前已检出的存储库的某些部分.
您可以进入非裸存储库,但即使签出的分支与您推送的分支相同,它也不会更新签出的工作副本.这是因为签出的副本可能有未提交的更改,并且git不会在没有您明确询问的情况下销毁更改(通常这些命令具有--hard参数)
阅读为什么在"git push"之后我不会看到远程仓库中的变化?和我将如何使用"混帐推"同步了防火墙的主机?有关问题的完整描述和可能的解决方案.警告,如果您已经推入远程仓库,则必须放弃该远程仓库中的任何未提交的更改.
一般来说,听起来你想要的方法并没有被gitters真正采用,因为它并不真正匹配分布式存储库的心态.确保您的回购副本是最新的,这是您自己的责任.
如果您已经创建了可以从主服务器轻松访问的克隆,那么您可以轻松地将更改从克隆中提取到主服务器中.只是:
git pull /path/to/clone
这将把克隆的HEAD的变化拉到master的HEAD中.
另一种常见情况是克隆位于另一个网络上或者无法直接从主服务器访问的内容.在这种情况下,您可以使用以下之一:
克隆推送到公共存储库并且主服务器从(例如,github或只是某个裸存储库)
git-bundle将一组更改作为文件移动
git-format-patch和git-am通过电子邮件发送更改