即使在git push之后,git存储库也没有反映出所做的更改

时间:2014-07-31 06:49:52

标签: git repository push

我在服务器上有一个git存储库(比如gitserver)。我已将其克隆到同一个服务器场(mysql服务器)上的另一台服务器上。在mysql服务器上,我做了一个

    touch version.txt

为它添加几行。

    git add version.txt
    git commit -am "added version text" .
    git push origin master 

输出:

    git push origin master
    Counting objects: 5, done.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 309 bytes, done.
    Total 3 (delta 1), reused 0 (delta 0)
    remote: warning: updating the current branch
    To root@ec2-54-197-239-43.compute-1.amazonaws.com:/opt/liveupdate/sqldb
    cb8ba55..ee4dab5  master -> master

在liveupdate服务器上,当我试图查看我添加的文件(version.txt)时,我无法这样做。

    git status 

给我以下输出。

    # On branch master
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #       modified:   version.txt
    #
    # Changed but not updated:
    #   (use "git add/rm <file>..." to update what will be committed)
    #   (use "git checkout -- <file>..." to discard changes in working directory)
    #
    #       deleted:    version.txt
    #

然后在gitserver上我使用以下输出进行提交:

     git commit
     [master 4d8975a] adding version.txt
     1 files changed, 0 insertions(+), 2 deletions(-)

毕竟,当我执行ls -a时,我是否应该能够在gitserver上看到version.txt

1 个答案:

答案 0 :(得分:2)

你正在检查分支上的非裸仓库。

理想情况下,您应该已经获得了error - refusing to update checked out branch,但您似乎已经在liveupdate服务器中使用receive.denyCurrentBranch忽略了这些选项,因此文件显示在当前状态。

为了避免这种情况,请在liveupdate服务器仓库中执行git reset HEAD && git checkout .(而不是您已经完成的提交 - 检查如何undo it

理想情况下,您应该使用intermediate bare repo,这样您就可以推送到裸仓库并稍后从中取出。