提问人:Cato Johnston 提问时间:5/20/2009 更新时间:1/8/2012 访问量:5727
文件未显示在远程存储库中
Files not showing up in the remote repository
问:
关于 git 工作方式的基本问题。
我克隆一个存储库,进行一些更改,提交并将更改推送回原始存储库。
当我执行 时,会显示提交消息,但实际文件不在目录中。git log
他们应该在那里吗?
答:
4赞
SpliFF
5/20/2009
#1
它们应该位于 .git(实际存储库)中。外部文件夹不是存储库,而是工作目录。
顺便说一句。手册页说:
描述
使用本地引用更新远程引用,同时发送完成给定引用所需的对象。
每次推送到存储库时,您都可以通过在那里设置钩子来使有趣的事情发生。参见 git-receive-pack(1) 的文档。
评论
0赞
JesperE
5/20/2009
如果它是裸存储库,则无需。没有可供它们显示的工作目录。如果希望它们显示在工作目录中的某个位置,则需要将裸存储库克隆到常规工作副本存储库中。
4赞
JesperE
5/20/2009
#2
您应该稍微了解一下裸存储库和具有工作副本的存储库之间的区别。裸存储库由 .git 目录(可能称为“.git”,也可能不称为“.git”)组成,它只是存储库数据库,没有工作副本。当您想要发布更改以供其他人拉取时,通常会使用此类存储库。我认为官方建议是只推送到裸露的存储库。
如果推送到裸存储库,则文件不会出现在任何工作副本中(当然,除了您自己的存储库)。但是,它们将显示在存储库中,但仅作为数据库对象显示。因此,如果您尝试在裸存储库中查找文件,则只会找到一堆管理文件和以 sha1 校验和命名的文件。
评论
0赞
Abizern
5/21/2009
那些以 sha-1 命名的文件是压缩文件、树和提交,它们被扩展为工作目录文件。
0赞
devrand
10/12/2010
#3
编辑:实际上,看起来更改更新后的钩子是正确的方法。
如果你真的需要这样做,你可以:
git reset --hard
或
git stash
这可能不是推荐的方式,但会产生预期的效果。
上一个:如何在循环中使用 shift?
下一个:如何根据另一个字段填充字段
评论