Uruchomiłem serwer railsów gitlabhq na maszynie wirtualnej, wykonując 1-6 kroków z tego samouczka https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md i uruchamiam serwer railsowy wykonujący polecenie sudo -u git -H bundle exec rails s -e production
. Następnie utworzyłem użytkownika, używając narzędzi administracyjnych i utworzyłem nowy projekt dla tego użytkownika. Następnie staram się jak zwykle przenieść istniejący projekt do tego repozytorium. Ale w ostatnim kroku git push origin master
kończy się błędem
[zdalne odrzucenie] master -> master (odrzucono hak przed odbiorem)
Dodatkowe informacje:
1) Nie aktywowałem użytkownika (właściciela projektu) przez e-mail z linkiem aktywacyjnym, ponieważ nie skonfigurowałem usługi pocztowej po stronie serwera i nie znalazłem instrukcji, jak to zrobić w tej instrukcji.
2) Serwer Gitlab generuje wskazówki, jak przekazać projekt do repozytorium i nie ma repositories/
ścieżki. Mam na myśli to, że generuje git@mygitlabhost:user/repo.git
zamiast tego, git@mygitlabhost:repositories/user/repo.git
który jest poprawny.
3) Kiedy próbowałem go debugować, otworzyłem pre-receive
skrypt wewnątrz repo na serwerze i próbował zmiennych wyjściowych (jest 3 z nich) refs = ARGF.read
, key_id = ENV['GL_ID']
a repo_path = Dir.pwd
i okazało się, że KEY_ID jest zawsze pusty. Może problem jest tutaj ... Jeśli tak, proszę o sugestie, jak to naprawić. Dzięki
Odpowiedzi:
GitLab domyślnie oznacza
master
gałąź jakoprotected
(Zobacz częśćProtecting your code
w https://about.gitlab.com/2014/11/26/keeping-your-code-protected/ why). Jeśli tak jest w Twoim przypadku, może to pomóc:przez https://gitlab.com/gitlab-com/support-forum/issues/40
W przypadku wersji 8.11 i nowszych instrukcje tutaj: https://docs.gitlab.com/ee/user/project/protected_branches.html#restricting-push-and-merge-access-to-certain-users
źródło
GitLab 8.11
opcje nieco się zmieniły, sprawdź szczegóły tutajA. Po pierwsze, upewnij się, że używasz poprawnych danych logowania do połączenia z serwerem Bitbucket (tj. Nazwy użytkownika / hasła / klucza SSH, który należy do Ciebie).
B. Następnie upewnij się, że imię i nazwisko / adres e-mail są poprawnie ustawione w lokalnej konfiguracji Git: Ustaw lokalną konfigurację Git dla konta, które próbujesz przekazać (sprawdzenie potwierdza, że jesteś osobą, która zatwierdziła pliki) * Pamiętaj, że rozróżniana jest wielkość liter, zarówno w przypadku nazwiska, jak i adresu e-mail * Uwzględnia również spacje - niektóre konta firmowe mają dodatkowe spacje / znaki w nazwie, np. „
Contractor/ space space(LDN)
”. W konfiguracji należy uwzględnić taką samą liczbę spacji, jak na serwerze Bitbucket. Sprawdź to w Notatniku, jeśli utknął.C. Jeśli używałeś niewłaściwego konta, po prostu zmień dane logowania (nazwa użytkownika / hasło / klucz SSH) i spróbuj ponownie.
D. W przeciwnym razie, jeśli lokalna konfiguracja jest nieprawidłowa, będziesz musiał ją zmienić
open -a TextEdit.app ~/.gitconfig
UWAGA: Będziesz musiał naprawić stare zmiany, które próbowałeś wypchnąć.
Zmień swoje ostatnie zatwierdzenie:
Spróbuj ponownie przesunąć swoje zatwierdzenia:
źródło
W moim przypadku mój zespół prowadził do stworzenia repozytorium (repozytorium było puste) i przydzielił mnie jako programistę, więc kiedy pchnąłem bezpośrednio do kodu, aby opanować błąd, z którym miałem do czynienia
! [remote rejected] master -> master (pre-receive hook declined)
Więc jak to naprawiono, że przydzielił mnie jako opiekuna, więc ja był w stanie przekazać kod bezpośrednio do mastera.źródło
Wygląda na to, że problem dotyczy niektórych usług, takich jak sidekiq. Uruchomienie
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
wyświetla wszystkie problemy z config.źródło
Przestrzegałem instrukcji logów heroku img https://devcenter.heroku.com/articles/buildpacks#detection-failure (użyj cmd: heroku logs -> pokaż swój błąd), a następnie wykonaj polecenie cmd: "heroku buildpacks: clear". w końcu to zadziałało!
źródło
Możesz nie mieć dostępu programisty do projektu lub gałęzi głównej. Potrzebujesz dostępu programisty, aby przyspieszyć nowe prace.
Nowa praca oznaczająca nowe gałęzie i zobowiązania.
źródło
Być może tak nie jest, ale to było rozwiązanie mojego błędu „ Odrzucenie połączenia przed odbiorem ”:
Istnieją repozytoria, które pozwalają na modyfikacje tylko za pomocą pull request . To znaczy, że musisz
źródło
Musisz dodać klucz ssh do konta git, jeśli generuje błąd, usuń poprzedni klucz ssh i utwórz nowy klucz ssh, a następnie dodaj.
źródło
Rozwiązałem ten problem, zmieniając protokół
remote 'origin' url
zhttp
nagit
w.git/config
źródło
Idź do Ustawienia projektu -> Haczyki -> (Pod) Odbiór wstępny
Wyłączenie cp wymaga odniesienia do wydania w zatwierdzeniach
źródło
Natknąłem się na ten sam błąd przy użyciu BitBucket. Miałem lokalne repozytorium Git, które chciałem zarchiwizować online, więc utworzyłem nowe repozytorium z mojego konta BitBucket (używając interfejsu internetowego).
Po uruchomieniu
git remote add origin [email protected]:StatMarianne/<a private repo>.git
pobiegłemgit push origin master
bez skutku (zwykle nie używam opcji -u z,git push
ponieważ nie mam nic przeciwko wpisywaniu pełnego repozytorium i nazw gałęzi podczas wypychania i ciągnięcia).Błąd brzmiał:
Ale mój lokalny oddział został pomyślnie wypchnięty, gdy uruchomiłem
git push -u origin master
(postępując zgodnie z instrukcjami BitBucket).Uważam to za zaskakujące, ponieważ -u (
--set-upstream
) powinno tylko „dodawać odniesienie do źródła (śledzenie) ...” W każdym razie.źródło
Napotkałem ten sam problem, ponieważ wysyłam swój kod bezpośrednio w gałęzi głównej i nie mam do tego uprawnień. Więc umieszczam mój kod w nowej gałęzi, a następnie utworzyłem żądanie ściągnięcia, aby scalić z masterem.
źródło