我是Git的新手,试图让自己正确设置。我有一个远程仓库和一个本地克隆,到目前为止只有一个(主)分支。
我在本地删除了一些文件,提交了这个更改,然后做了'git push origin master',它似乎成功运行了。 'git status'现在显示没有任何东西可以在本地提交。
但是,当我查看远程仓库时,文件仍然存在,并且“git status”将所有文件显示为已添加但未提交。应该推动我的更改没有从远程删除它们?我做错了什么?
答案 0 :(得分:5)
问题是你显然是推送到非裸存储库。推送永远不会更新远程工作副本。
查看Git push only for bare repositories?和http://gitready.com/advanced/2009/02/01/push-to-only-bare-repositories.html
要使非裸机远程存储库保持最新状态,请通过SSH连接到存储库所在的计算机并运行git reset --hard HEAD
和git checkout -f
以强制使工作副本保持最新状态(注意这将破坏您在该工作副本中可能做的任何本地更改。
要使您的远程存储库裸露,请通过SSH连接到计算机,以便您可以直接访问它。假设存储库位于子文件夹repo
中,请运行以下命令:
mv repo repo_old
git clone --bare repo_old repo
然后测试一切是否正常,并在此rm -rf repo_old
之后删除旧的。