Я создал репозиторий git на моем vps через root и сделал его общим, чтобы группа людей могла получить к нему доступ:
# mkdir example.git
# cd example.git
# git init --bare --shared=group
Initialized empty shared Git repository in /root/example.git/
# ls
branches config description HEAD hooks info objects refs
# chgrp -R devs .
Затем, как пользователь на моем локальном компьютере, я создал каталог и добавил example.git в качестве нового источника для этого репозитория git. Наконец, я попытался нажать на источник:
mkdir bubbles && cd bubbles
bubbles ranuka$ git init
Initialized empty Git repository in /Users/ranuka/Desktop/bubbles/.git/
bubbles ranuka$ ls
bubbles ranuka$ git remote add origin ranuka@000.000.000.000:example.git
bubbles ranuka$ echo "Hello" > readme.txt
bubbles ranuka$ git add readme.txt
bubbles ranuka$ git commit -m "Adding a readme file"
[master (root-commit) 2c89e43] Adding a readme file
1 file changed, 1 insertion(+)
create mode 100644 readme.txt
bubbles ranuka$ git push origin master
ranuka@000.000.000.000's password:
fatal: 'example.git' does not appear to be a git repository
Смущен этой ошибкой, так как я знаю example.git явно репо на моем vps. Я вошел на свой vps как 'ranuka' и попытался cd к example.git, но не смог, но по какой-то причине я смог как root .. Что дает?
Моя цель состояла в том, чтобы создать репозиторий git на моем vps, к которому группа пользователей в определенной группе могла бы получить доступ и сделать push / pull.
РЕДАКТИРОВАТЬ: после запуска ls -a на root@000.000.000.000 и ranuka@000.000.000.000 Это были результаты:
. example.git
.. gitosis
ajenti-repo-1.0-1.noarch.rpm install.log
anaconda-ks.cfg install.log.syslog
.bash_history pgdg-centos93-9.3-1.noarch.rpm
.bash_logout .pki
.bash_profile repo.git
.bashrc .rnd
.cshrc .ssh
epel-release-6-8.noarch.rpm .tcshrc
И
. .. .bash_logout .bash_profile .bashrc
Таким образом, кажется, что root и ranuka находятся в разных каталогах без каких-либо отношений.
У разных пользователей разные домашние папки.
Если вы войдете в систему как root, дом будет /root
.
Ни один другой пользователь не сможет получить к нему доступ.
Если вы войдете в систему как ранука, дом (вероятно) /home/ranuka
.
Которая, конечно, не содержит папки, так как она находится в /root
.