Chciałbym używać git do hostowania mojej witryny i chciałbym platformy, na którą mogę zalogować się online, aby z nią współpracować (coś takiego jak Github). Można by pomyśleć, w którym przypadku strony Github byłyby dla mnie idealną drogą, chociaż nie chcę używać stron Github. Chciałbym to wszystko hostować na moich własnych serwerach, tak jak w przypadku Github Enterprise (ale za darmo).
Znalazłem Gitlab i zastanawiałem się, czy mogę użyć Gitlab jak stron Github. Czy to możliwe?
web-hosting
git
Ben Watkins
źródło
źródło
Odpowiedzi:
Dobre wieści!
Od 8.3 (grudzień 2015) GitLab ma „Strony GitLab”. https://about.gitlab.com/2015/12/22/gitlab-8-3-released/
Ta funkcja jest dostępna na GitLab.com (w której działa EE), gdzie możesz mieć bezpłatne, nieograniczone repozytoria, publiczne / prywatne.
Oto dokumentacja stron GitLab, wyjaśniająca, w jaki sposób możesz hostować za darmo swoje statyczne strony na GitLab. http://doc.gitlab.com/ee/pages/README.html
źródło
Nie jestem do końca pewien, o co pytasz. Mówisz, że chcesz hostować na własnym serwerze, ale twoje pytanie mówi, że chcesz hostować jak strony gitlab, które nie są twoim własnym serwerem.
W każdym razie może to pomoże
Tym się właśnie zajmuję
na lokalnym komputerze
Teraz mam lokalnie repo. Skopiuj go na serwer
Teraz mam go na zdalnym serwerze.
Teraz na stronie jest zarówno oddział główny, jak i oddział na żywo. Robię to, ponieważ AFAICT nie możesz wypychać do bieżącego oddziału. Mamy teraz gałąź „na żywo”, która jest obecna na pilocie, i gałąź „master”, która nie jest
Na koniec dodaj pilot do mojego lokalnego repozytorium
Teraz za każdym razem, gdy chcę zaktualizować witrynę, sprawdzam rzeczy w lokalnym oddziale głównym, a następnie uruchamiam ten skrypt
git push
Pcha moje zmiany w długoterminowych oddziału na serwerze internetowym. Tessh
następnie loguje się do serwera WWW i fast-forward zmian „master” do obecnego oddziału. W tym przypadku oddział „na żywo”.--ff-only
mówi o niepowodzeniu, jeśli na serwerze pojawią się zmiany.Jeśli są zmiany na serwerze, mogę je przeciągnąć do mojego lokalnego wzorca
Na więcej rzeczy. Zanim to zrobię, konfiguruję klucze SSH na zdalnym serwerze, więc nie muszę wpisywać żadnych haseł
Nie ma to absolutnie żadnego związku z githubem lub gitlabem. Mogę też wprowadzić tam moje zmiany, ale nie są one powiązane.
źródło
Istnieje projekt nodejs, który realizuje to: https://github.com/Glavin001/GitLab-Pages
źródło
Po krótkim przeszukaniu różnych pytań w Google znalazłem sposób. Może nie jest to najlepszy sposób i może być zbyt skomplikowany, ale powinien działać i to jest najważniejsze. Jeśli jednak znasz lepszy sposób lub możesz go znaleźć, daj mi znać!
Odkryłem, że możesz wdrożyć swój kod na serwerach za pomocą haków Git. Wszystko, co musisz zrobić, to SSH na serwerze, utworzyć repozytorium git, a następnie ustawić hak, aby wypychać zatwierdzenia do tego repozytorium. Pozwoli ci to na przesłanie swoich zatwierdzeń na twoje serwery, ale w tym momencie nie ma to nic wspólnego z gitlab.
Następnym krokiem jest dodanie adresu push dla gitlab do tego samego pilota. W ten sposób będziesz za każdym razem naciskać zarówno na gitlab, jak i samą stronę. W rezultacie zarówno repozytorium gitlab, jak i rzeczywista witryna będą zsynchronizowane. Chociaż jest to hack i zdecydowanie nie jest skuteczny.
Z tego posta na blogu dowiedziałem się, jak wdrożyć kod na serwerach za pomocą git: http://sebduggan.com/blog/deploy-your-website-changes-using-git/
Odkryłem, że możesz dodać dwa adresy URL push do swoich pilotów w git z tego pytania na stackoverflow: /programming/14290113/git-pushing-code-to-two-remotes
Jak powiedziałem, jeśli możesz znaleźć lepszy sposób, daj mi znać. To zadziała, ale oznacza posiadanie dwóch wersji tego samego kodu. Oczywiście jest to bardzo nieuporządkowane i powoduje duże marnowanie pamięci serwera.
źródło
Obecnie najlepsze, co możesz zrobić, to przesłać na GitLab CI serwer statyczny, taki jak Amazon S3.
Jeśli możesz wdrożyć za pomocą Git, następujące (nierozwiązane) pytanie dotyczy tego, jak to zrobić za pomocą gitlab: /programming/14288288/gitlab-repository-mirroring
Jest to specjalne żądanie w module śledzenia funkcji: http://feedback.gitlab.com/forums/176466-general/suggestions/5599145-preview-render-static-html-pages-pushed-to-repos
źródło