【问题标题】:Git push succuess but files are not changed, why?Git推送成功但文件没有改变,为什么?
【发布时间】:2021-07-26 13:31:19
【问题描述】:

我创建了一个 repo,添加了文件,将其克隆到我的本地计算机,进行更改,提交它们,将它们推送到服务器上,但更改不在服务器上的文件中。 我的命令如下:

在服务器上:

git init

git add *

git commit

我用初始化作为注释写了提交。

然后我将它克隆到我的本地机器上:

git clone user@ipadresse:/path/to/.gitfolder

然后我注意到回购不是裸露的一个小问题,所以我跑了

git config --bool core.bare true

在服务器上。

我在 repo localy 中创建了一些文件夹和文件,添加并提交了它们。 然后我将它推送到服务器上并得到以下输出

Counting objects: 100% (18/18), done.
Delta compression using up to 8 threads
Compressing objects: 100% (8/8), done.
Writing objects: 100% (12/12), 1.83 KiB | 469.00 KiB/s, done.
Total 12 (delta 2), reused 1 (delta 0), pack-reused 0
To ipadress:/path/to/.gitfolder
   881e1dc8..62ec93d9  master -> master 

但新文件不在那里。 当我在服务器上运行命令git branch -a -v -v 时,我会看到来自本地更改的提交消息。 那么为什么它没有在服务器上更改,我如何在那里获取我的更新?

【问题讨论】:

  • “裸”存储库没有任何工作副本。
  • 通过将服务器存储库配置为裸露,您实际上留下了一份工作目录的副本,没有任何更新。这意味着您可能应该删除工作副本,以避免混淆。
  • 直接在充当服务器的远程 git 上工作的整个想法似乎是错误的。

标签: git git-push


【解决方案1】:

与大多数其他 core 设置一样,core.baredescriptive(描述实际设置),而不是 prescriptive(更改它不会更改实际设置)。所以你不应该只是改变它。只是更改core.bare 就像是走到红绿灯前,在红色信号灯上贴上胶带,让它永远不会显示你应该停下来,让绿色信号灯看起来一直亮着,这样你就可以一直走。它甚至可能实际上工作一段时间,直到最终不可避免的交通碰撞。

通常,要进行裸克隆(根据需要启用git push),您将使用git clone --bare可以将非裸克隆转换为裸克隆(反之亦然);请参阅How to convert a normal Git repository to a bare one? 并注意“删除工作副本”步骤。

如果您想要一些1 新的-git push-ed 提交自动签出到一个非裸存储库,请参阅@987654322 @ 到 cannot push into git repository(与 pushing to a git repository does not work 类似)。


1有关将或不会以这种方式部署的提交的描述,请参阅这些答案以及the Git documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 2014-02-22
    • 2012-04-26
    • 2012-02-25
    • 1970-01-01
    相关资源
    最近更新 更多