Git裸与非裸库

时间:2015-01-05 18:22:16

标签: git repository

据称,如果用户创建了非裸存储库并通过发出git status来检查状态,则会看到没有要提交的文件;然后另一个用户可以将文件推送到非裸存储库,这样创建该存储库的第一个用户将再次发出git status命令并找到不同的对象数据库,这就是为什么在这种共享中需要裸存储库的原因实例! (这是裸存储库可以阻止的错误情况的一个例子)

我的第一个问题是,如果某人能够提供答案,那么如果他仍然在本地存储库中工作,那么存储库的创建者如何仅通过发出git status来查看第二个用户的更改;也就是说,他看到差异的唯一方法 - 在他期望的和远程的确实之间 - 的唯一方法是推动或尝试合并?如果确实他推动或合并,那么说这是git协作的本质是不正确的。我知道我认为是错的,但有人能告诉我哪里出错了吗?

第二个问题是裸存储库和非裸存储库是2个独立的存储库还是两者之间是否存在连接?换句话说,如果用户创建一个裸存储库,然后另一个用户克隆它(创建一个非裸存储库),当第二个用户添加并提交文件然后将它们推送到远程服务器时,服务器端真正发生了什么 - 他是(第二个用户)与另一个存储库一起工作?

1 个答案:

答案 0 :(得分:-1)

第二个用户将新文件发送到远程存储库后,存储库将变为非裸。第一个用户需要从远程存储库中提取或重新绑定,以使其本地存储库与远程存储库保持同步。如果用户没有这样做,他的本地存储库就不会知道"关于远程更改及其状态将代表远程存储库的早期版本。