【发布时间】:2019-01-25 19:23:59
【问题描述】:
我使用 git 对网站的代码库进行更改。文件内部的更改和文件的删除有效,但是,当我将新文件或目录(不是空的)添加到存储库时,它不会在本地拉到网络服务器,拉时不显示错误消息但检查该文件时,它不存在。在 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 拉动。
我很努力,但在此之后我无法使文件出现,除非我删除整个本地 repo 并再次克隆它。没有硬重置,似乎没有任何帮助。
我做了什么检查:
- 确保在相关文件中实际保存了更改。
- 确保文件不符合我在 .gitignore 和 .git/info/exclude 中的排除规则
- 确保不尝试添加空文件夹。 Git 不会跟踪这些。
我在网络服务器上对这个 repo 的权限设置基于: 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。
【问题讨论】:
-
考虑目录栏
-
@NicolásAlarcónR。请更详细地描述您想要提示/询问的内容。
-
您确定新文件与存储库中的活动文件位于同一分支中吗?
-
@LajosArpad 我在这个 repo 上有一个单独的分支“master”,但是如果你提到别的东西,请提供命令来返回它的结果来扩展我的问题
-
所以如果你运行 git branch,你会在 pull 之后看到这个单一的分支吗?
标签: git centos7 file-permissions