Chcę skonfigurować repozytorium GIT dla strony internetowej. Wielu użytkowników będzie miało klon repozytorium na swoim komputerze lokalnym i pod koniec każdego dnia wypychają swoją pracę na serwer. Mogę skonfigurować nagie repozytorium, ale chcę działające repozytorium dir / non-bare.
Chodzi o to, że katalog roboczy repozytorium będzie folderem głównym witryny. Pod koniec każdego dnia wszystkie zmiany będą widoczne bezpośrednio. Ale nie mogę znaleźć sposobu, aby to zrobić.
Zainicjowanie repozytorium serwera za pomocą git init
powoduje następujący błąd, gdy klient próbuje wypchnąć niektóre pliki:
git push origin master
[email protected]'s password:
Counting objects: 3, done.
Writing objects: 100% (3/3), 227 bytes, done.
Total 3 (delta 0), 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 ssh://[email protected]/home/orangetux/www/
! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to 'ssh://[email protected]/home/orangetux/www/'
Zastanawiam się więc, czy to właściwy sposób na skonfigurowanie repozytorium GIT dla strony internetowej? Jeśli tak, jak mam to zrobić? Jeśli nie, to jaki jest lepszy sposób na skonfigurowanie repozytorium GIT do opracowania strony internetowej?
Widziałem, że nie możesz naciskać na repozytorium typu non-bare , ale jak to rozwiązuje mój problem? Utworzyć puste repozytorium na serwerze i mieć klon tego repozytorium na tym samym serwerze w folderze htdocs? To wydaje mi się trochę niezdarne. Aby zobaczyć wynik zatwierdzenia, muszę za każdym razem klonować repozytorium.
źródło
Jest odrzucany zdalnie, więc upewnij się, że repo, które wypychasz, jest aktualne, ponownie pociągając i pchając:
Jeśli nadal odmawiasz, spróbuj najpierw pchnąć do innej gałęzi:
aby właściciel repo mógł scalić Twój oddział.
Jeśli wprowadziłeś jakieś zmiany do zatwierdzeń przez
rebase
, prawdopodobnie prawdopodobnie chcesz to wymusić-f
.Alternatywnie wyłącz
denyCurrentBranch
zdalnie przez (nie zalecane):źródło