Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Projekt GIT w zdalnym repo
Forum PHP.pl > Forum > Kontrola i zarządzanie projektami
Matrix12
Witam,


posiadam projekt w katalogu /var/www, chciałbym aby użytkownik mógł pobrać to repo i to nie jest żadnen problem po SSH może ścignać. Jednak chciałbym aby użytkownik mógl pobierać dane tak git clone ssh://name@ip/home/repository/project.git

Czyli po wklejeniu tej ścieżki będzie mógł zrobić pull i ściagnac projekt na localhost czy gdzieś tam.. ale zrobi git push to aby zmiany były wczytane w projekt trzeba wejsc w /var/www/ i tam zrobić git pull..




Problem mam z wykonaniem tego.. czy ja muszę zrobić skrót do .git czy jak do tego podejść?
Pyton_000
flow jest taki że:
- Tworzysz repozytorium --bare czyli bez plikowe - i to jest twoje bazowe repozytorium do którego pchasz i pobierasz
- tworzysz sobie clone w /www
- ustawiasz w --bare hook_after_push żeby wszedł ci do www i zrobił automatem pull

Matrix12
Znaczy ja nie chce automatycznie pulla. Chce aby gitrepo było w home a projet w innym katalogu a potem ja sobie recznie zrobi git pull(muszę tak kontrolowć zmiany)
Pyton_000
Tworzysz sobie usera 'git' z katalogiem domowym

Potem wchodzisz do tego katalogu i dajesz `git init --bare`

teraz możesz dać `git clone git@domain.pl:repoo.git`

i tyle.

możesz w katalogu home dać sobie jakiś podkatalog na repo np. /home/git/repos/
i wtedy
`git clone git@domain.pl:repos/repoo.git`
kchteam
Repo zdalne dostępne dla użytkowników po ssh i dla Ciebie na maszynie ustawiasz w home/repository (polecenie odpalasz w katalogu, który ma zawierać repozytorium) za pomocą:
git init --bare - teraz jest puste [1]

W katalogu www z kodem robisz:
git init - aktywujesz wersjonowanie dla plików
git remote add production_upstream /path/to/bare - podłączasz się do repo bare

git add . - dodajesz wszystko do wersjonowania (jak czegoś nie chcesz wersjonować, to dodajesz do pliku .gitigonre)
git commit -m 'Wersja startowa'
git push --set-upstream production_upstream master - wysyłasz stan startowy aplikacji do repo dostępnego zdalnie.

Teraz użytkownicy robią clona, modyfikują kod, wysyłają zmiany na repo [1],
a Ty z produkcji pullujesz, co uważasz za stosowne z [1].

[Adam]
Matrix12
Właśnie mam z tym problem. Utworzyłem użytkownika który może ściągać repo ale pushować już nie może. Wiecie z czego to wynika ? Jak to obejść? Serwer jest postawiony na linuxie.
Pyton_000
a pull z jakiego adresu robisz?
push jaki błąd wywala?
Matrix12
Total 3 (delta 1), 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'.

! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to 'ssh//ip do serwa
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.