Я размещаю git-сервер на моем сервере Debian Stretch в каталоге /var/www/example.com/html.
Я могу отправить файлы на этот сервер на моем локальном компьютере, если я сначала клонирую репозиторий git, сделав это на моем локальном компьютере с Windows 10:
C:\Users\User\Desktop\AnotherRepoTest\test>git clone git@IP_Of_Remote_server:/var/www/example.com/html/repo.git
Cloning into 'repo'...
git@IP_Of_Remote_server's password:
remote: Counting objects: 20, done.
Receiving objects: 100% (20/20), 2.30 KiB | 1.15 MiB/s, done.
remote: Compressing objects: 75% (9/12) Resolving deltas: 100% (4/4), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 20 (delta 4), reused 0 (delta 0)
C:\Users\User\Desktop\AnotherRepoTest\test>
Это работает, и он получает файлы из репо, но если я создам новый файл, а затем отправлю этот файл в главную ветку, удаленный сервер не будет отображать этот новый файл в каталоге удаленного репо.
C:\Users\User\Desktop\AnotherRepoTest\test>cd repo
C:\Users\User\Desktop\AnotherRepoTest\test\repo>echo "Hello, world." > AddThisFile.txt
C:\Users\User\Desktop\AnotherRepoTest\test\repo>git add --all
C:\Users\User\Desktop\AnotherRepoTest\test\repo>git commit -m "New Commit"
[master e5a21b6] New Commit
1 file changed, 1 insertion(+)
create mode 100644 AddThisFile.txt
C:\Users\User\Desktop\AnotherRepoTest\test\repo>git push -u origin master
git@IP_Of_Remote_server's password:
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 292 bytes | 292.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
To IP_Of_Remote_server:/var/www/example.com/html/repo.git
78da987..e5a21b6 master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
C:\Users\User\Desktop\AnotherRepoTest\test\repo>
Как видите, все прошло как положено. Теперь, если мы проверим каталог репозитория удаленного сервера, этот новый текстовый файл не будет добавлен в /var/www/example.com/html/
Но если я снова клонирую репо в другой папке на моем локальном компьютере, этот текстовый файл будет клонирован.
Проблема в том, что я не могу найти этот файл в удаленном каталоге. Даже когда я бегу:
root@ohwell:/var/www# locate AddThisFile.txt
root@ohwell:/var/www#
Я предоставил пользователю git только доступ к оболочке git и имею правильные разрешения для каталога / var / www. Я даже перезагрузил сервер, чтобы посмотреть, внесены ли изменения, но безуспешно. Почему я не могу найти этот файл на удаленном сервере? Что мне не хватает?
Я установил голое репо, следуя этим руководствам:
https://www.linux.com/learn/how-run-your-own-git-server
https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server