当前位置:  开发笔记 > 前端 > 正文

Git只推送裸存储库?

如何解决《Git只推送裸存储库?》经验,为你挑选了2个好方法。

当我尝试'git push origin master'到我的外部磁盘上的远程存储库时,git警告发出声明,在默认情况下拒绝检出存储库将在下一版本的git中被拒绝.在外部磁盘上我已经检查了项目,我想将我在计算机上所做的更改发送到这些reposiotry.'git push origin master'不是正确的方法吗?我必须在外部磁盘上的存储库中"git pull ..."吗?所以我不能推动改变而只是拉动它们?只与'裸'存储库一起工作是不同的?因此,如果我的外部磁盘上的存储库是一个裸存储库,我可以将更改推送到它吗?我理解得对吗?



1> CB Bailey..:

仔细阅读警告.新的默认禁止仅限于推送到非裸存储库中当前已检出的分支.推送到非裸存储库中的任何其他分支是完全可以的.

这样做的原因是推送过程无法直接访问工作树,因此索引和分支头在工作树下会发生变化.当您随后转到工作树时,看起来工作树已经撤消了与正在开发的任何更改混合的更改.这使得分离两组更改变得非常困难.

推向其他分支机构没有这样的缺点.然后,您可以转到该存储库,并根据需要将这些更改合并到已签出的分支中.


在我阅读[git ready»push to only bare repositories]之前,我不明白这个答案(http://gitready.com/advanced/2009/02/01/push-to-only-bare-repositories.html) [所有关于"裸"的回购 - 什么,为什么,以及如何修复非裸推)(http://sitaramc.github.com/concepts/bare.html)(特别是"是的,但为什么呢?我需要一个简单的回购?"部分).但是,现在,我做到了!

2> mipadi..:

您不应该推送到非裸存储库,因为推送只会更新存储库的内部状态,并且不会影响已检出的磁盘上的文件副本.因此,如果您在没有首先更新(通过git checkout)repo中文件状态的磁盘副本的情况下开始在该repo中工作,则可能会遇到问题.


成为古鲁:正确; 推送实际上与获取相反.Pull = fetch + merge到当前分支.
关键是拉动还会更新工作树中的文件("磁盘上"文件),这既不是推送也不是提取.
推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有