为什么`git pull`在我的网络服务器上失败?

时间:2018-08-19 12:22:08

标签: git centos7 file-permissions

我使用git提取站点代码库中的更改。文件内部的更改和文件的删除均起作用,但是,当我向存储库中添加新文件或目录(非空文件)时,它不会被本地拉到Web服务器,在拉出时不显示错误消息,但是在检查该文件时,它不存在。在线显示在bitbucket存储库中。

试图删除本地git repo并再次克隆它,这样我可以从源中获取所有文件,但是对新添加的文件进行提取时问题仍然存在。它显示为好像被拉动了:

...
   18bb8ac..c9c1e40  master     -> origin/master
Updating 18bb8ac..c9c1e40
Fast-forward
 config/plugins/test1.txt   | 22 ++++++++++++++++++++++
 config/plugins/testing.txt | 22 ++++++++++++++++++++++
 2 files changed, 44 insertions(+)
 create mode 100644 config/plugins/test1.txt
 create mode 100644 config/plugins/testing.txt

但是,当检查(ls -la config/plugins/)时,新文件不存在。即使我尝试使用sudo git pull进行拉动。

我努力了,但是在此之后,除非删除整个本地存储库并再次克隆它,否则我无法使文件显示。没有硬重置,似乎无济于事。

我所做的检查:

  • 确保所讨论的文件中实际上保存了更改。
  • 确保文件不符合.gitignore和.git / info / exclude中的排除规则
  • 确保不尝试添加空文件夹。 Git不会跟踪那些。

我在网络服务器上对此存储库的权限设置基于: https://www.agix.com.au/git-a-walk-through-for-sysadmins/

就是这样:

sudo chown apache:apache -R /var/www/html/sites/mysite
cd /var/www/html/sites/mysite
# File permissions, recursive
sudo find . -type f -exec chmod 0644 {} \;
# Dir permissions, recursive
sudo find . -type d -exec chmod 0755 {} \;
sudo setfacl -R -b -m user:root:rwx -m d:user:root:rwx -m group:developers:rwx -m d:group:developers:rwx -m group:apache:rx -m d:user:apache:rx /var/www/html/sites/mysite

我在开发人员组中的用户。

这是服务器上我的.git目录。

我正在使用CentOS7和git 2.16.3。

1 个答案:

答案 0 :(得分:1)

将文件拖到同一台服务器上的其他存储库中是可行的,因此我完全删除了该有问题的存储库的远程存储库和本地.git目录,并创建了一个新的远程存储库,并将其添加到现有文件中。只有这样才能解决问题。

希望下一次问题再次出现时,我可以用更多线索来更新此答案,以了解我对回购协议所做的努力,使之发疯。