Git裸存储库不反映推送所做的更改

时间:2017-10-03 09:04:49

标签: git

首先,是的,那里有很多主题,而且我更加困惑,而不是指出正确的东西。

对于初学者,我正在学习git并尝试将其应用到我的第一个项目中。

我的设置是这样的:

远程存储库:Linux /opt/projectFolder

请注意,projectFolder中包含初始文件。

我运行以下命令:

git init --bare< - 没有用,似乎我有错误,因为我的项目使用了config文件夹,所以它与git冲突,我不知道如何解决它。

所以我做的是:

> git init
> git add .
> git commit -m"Initial Files"
> git --bool core.bare true

现在没有任何错误,

本地存储库:Win10 C:/ git / projectFolder

我跑:

> git clone user@192.168.xx.xx:/opt/projectFolder

它成功地克隆了存储库,现在我尝试用它编辑初始文件中的一些文本文件然后运行:

> git add .
> git commit -m"Test commit"
> git push

当我检查linux远程仓库时,对文件的更改没有反映但是如果我在其他计算机上克隆它,则会反映出更改

我做错了什么或错过了什么?

1 个答案:

答案 0 :(得分:0)

缺少的是存储库没有供您查看的文件。

来自git-scm.com/docs的文档,请参阅this explanation了解core.bare设置的内容

  

<强> core.bare

     

如果为true,则假定此存储库为裸,并且没有与之关联的工作目录。如果是这种情况,将禁用许多需要工作目录的命令,例如git-add [1]或git-merge [1]。

     

创建存储库时,git-clone [1]或git-init [1]会自动猜测此设置。默认情况下,假定以“/.git”结尾的存储库不是裸(裸=假),而假定所有其他存储库都是裸(裸=真)。

我不知道您可以将初始化后的存储库转换为裸存储库,但它似乎对您有用。

在我看来你应该得到一个

 ! [remote rejected] master -> master (branch is currently checked out)

错误,但这可能取决于git版本。

您希望在存储库中看到的文件更改为二进制形式的提交对象(我不会详细介绍)

但是refs/objects/个文件夹下的所有内容都已存在。

希望足够解释。