Я разрабатываю веб-приложение для интрасети, и поэтому я не хочу каким-либо образом отправить его на локальный веб-сервер.Создание git-сервера на локальном веб-сервере было решением.Тем не менее, я довольно новичок в git, и отправка кода в локальный репозиторий не работает должным образом.
Вот что я сделал:
- Создан .shh и.ssh / авторизован / ключи от пользователя с правами администратора.Я не настраивал нового пользователя git, потому что после отправки кода в репозиторий пользователей git я боялся, мне пришлось бы вручную скопировать его пользователю adminrador, так как apache ищет веб-приложение на
/var/www/html
(может быть, яздесь не так?) - Добавлен id_rsa.pub компьютера-разработчика на веб-сервер .ssh / authorized_keys
- На веб-сервере я создал каталог на
/var/www/html/asc
, а затем попытался сначалаgit init --bare
, который превратил папку asc в папку .git.Как я обнаружил, это было странно, так как все мои предыдущие проекты имели папку .git, поэтому я удалил все и сделал git init
, который создал папку .git внутри каталога /var/www/html/asc
(это то, что я ожидал). - Затем на машине для разработки я пошел в каталог проектов и выполнил
git init
-> git -am 'initial commit'
-> git remote add localgit administrator@192.168.0.106:/var/www/html/asc
-> git push localgit master
Однако это дает мне следующееошибка:
Counting objects: 132, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (120/120), done.
Writing objects: 100% (132/132), 2.02 MiB | 7.70 MiB/s, done.
Total 132 (delta 13), reused 0 (delta 0)
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To 192.168.0.106:/var/www/html/asc/.git
! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to 'administrador@192.168.0.106:/var/www/html/asc/.git'
Теперь, когда я пытался передать свой код в локальную службу git, когда он был настроен с использованием тега --bare
(что было странномне), это было сообщение, которое я получил:
Counting objects: 132, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (120/120), done.
Writing objects: 100% (132/132), 2.02 MiB | 7.56 MiB/s, done.
Total 132 (delta 13), reused 0 (delta 0)
To 192.168.0.106:/var/www/html/asc
[new branch] master -> master
Однако на веб-сервере каталог /var/www/html/asc
содержал все эти мерзавцы, такие как ветви,HEAD, хуки, информация и т. Д. Но ни один из кодов, которые я нажал, даже в ветвях папок не было мастера внутри, как я и ожидал.
В любом случае, возможно, этоя виноват в том, что не знаю, как работать с git, но как мне этого добиться: я хочу развивать сетьприложение на моей машине, и когда какая-то функция готова, я бы хотел перенести ее на локальный веб-сервер и запустить без каких-либо проблем внутри сервера.Я подумал, что установка git-репозитория прямо внутри /var/www/html
была бы хорошей идеей, но, возможно, это не так?
Спасибо.