git push to remote:提交正在进行但看不到文件?

时间:2011-12-22 15:58:31

标签: git ubuntu

我已经在远程服务器上设置了一个裸仓库并且可以推送到它但是当我完成时我没有看到遥控器上的任何文件....这是我在推动时看到的:< / p>

my-macbook-pro:myapp me$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   www/index.php
#
no changes added to commit (use "git add" and/or "git commit -a")
my-macbook-pro:myapp me$ git add .
my-macbook-pro:myapp me$ git commit -m 'test'
[master 57e4b86] test
 1 files changed, 2 insertions(+), 1 deletions(-)
my-macbook-pro:myapp me$ git push
me@myapp.com's password: 
Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 368 bytes, done.
Total 4 (delta 1), reused 0 (delta 0)
To ssh://me@myapp.com:1111/var/www/myapp.git
   ce07e61..57e4b86  master -> master
my-macbook-pro:myapp me$ 

当我进入时,我“推”的文件不在那里。任何想法?

3 个答案:

答案 0 :(得分:1)

你不应该看文件,你应该看到修改。此外,你在遥控器上有一个裸存储库,根本没有工作目录。

您可以执行git branchgit show mastergit log等操作来检查存储库内容。

答案 1 :(得分:1)

正如Krelin和Ray已经提到的,裸存储库不会包含文件本身。这是一个功能,而不是一个错误,因为它避免了潜在的混乱。但是,如果您想要在服务器上更新您的网站,则此功能会使简单推送无法使用。

一种解决方案是推送到服务器上的存储库,然后使用挂钩自动更新目标文件夹中的文件。 Digital Ocean有一个很好的教程,解释如何在这里做他的事情:

https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps

答案 2 :(得分:0)

裸存储库是没有工作目录的存储库。您可以告诉它,因为.git文件夹中“正常”的内容就在目录中,目录本身以“.git”后缀命名。

关键是,您不希望通过推入他们正在工作的工作目录来覆盖某人的更改。因此,您有一个中央签到存储库,每个人都分享他们的更改,这是裸的 - 只有一个repo,没有工作目录。消除任何风险。