我在服务器上有一个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
?
答案 0 :(得分:2)
你正在检查分支上的非裸仓库。
理想情况下,您应该已经获得了error - refusing to update checked out branch
,但您似乎已经在liveupdate服务器中使用receive.denyCurrentBranch
忽略了这些选项,因此文件显示在当前状态。
为了避免这种情况,请在liveupdate服务器仓库中执行git reset HEAD && git checkout .
(而不是您已经完成的提交 - 检查如何undo it)
理想情况下,您应该使用intermediate bare repo,这样您就可以推送到裸仓库并稍后从中取出。