我使用 git 来提取站点代码库的更改。文件内部的更改和文件删除是有效的,但是,当我将新文件或目录(不是空的)添加到存储库时,它不会被本地拉到网络服务器,拉动时不会显示错误消息,但在检查该文件时,它不在那里。在线的 bitbucket repo 上显示了这一点。
尝试删除本地 git 存储库并再次克隆它,这样我可以从源获取所有文件,但是在拉取新添加的文件时问题仍然存在。它显示好像被拉动了:
...
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/ 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 https://drive.google.com/open?id=1HgM_1lc04VwHUXuCoHEYdPFRs9ThGO1Y来自服务器的目录。
我使用的是 CentOS7 和 git 2.16.3。