Git первоначальный толчок не прошел, крюк предварительного получения отклонен - PullRequest
0 голосов
/ 22 февраля 2019

Я вытащил репозиторий и почистил ненужные детали .Локально все идеально.Я хочу сохранить историю предыдущего репо.

Затем я создал еще один репозиторий, чистый.Но push не работает из-за pre-receive hook declined

Я совершенно уверен, что у меня нет такого материала в моем хранилище:)

Я пробовал с несколькими командами, такими как --force-with-Пожалуйста, без везения.

В чем может быть проблема здесь, что-то не так с предыдущим репозиторием, из которого я извлек.

git push --verbose --set-upstream origin Last-backup:pushed-from-different-repo --force-with-lease
Pushing to git@gitlab.localhost:tkcn/history-recovery.git
Enter passphrase for key '---/.ssh/id_rsa':
Counting objects: 415402, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (129955/129955), done.
Writing objects: 100% (415402/415402), 78.71 MiB | 271.00 KiB/s, done.
Total 415402 (delta 229277), reused 411834 (delta 226634)
remote: Resolving deltas: 100% (229277/229277), done.
remote: Checking connectivity: 415402, done.
remote: GitLab: Push operation timed out
remote:
remote: Timing information for debugging purposes:
remote: Running checks for ref: pushed-from-different-repo
remote: Checking if you are allowed to push... (5.83ms)
remote: Checking if default branch is being deleted... (0.12ms)
remote: Scanning repository for blobs stored in LFS and verifying their files have been uploaded to GitLab... (25.63ms)
remote: Checking if branch follows the naming patterns defined by the project... (3.38ms)
remote: Validating diff contents... (cancelled after 41262.16ms)
To gitlab.localhost:tkcn/history-recovery.git
 ! [remote rejected]       Last-backup -> pushed-from-different-repo (pre-receive hook declined)
error: failed to push some refs to 'git@gitlab.localhost:tkcn/history-recovery.git'

git subtree split и git filter-branch --prune-empty не работали, так как папки перемещались несколько раз в истории.

Наиболее подходящее решение для stackoverflow выглядит как https://stackoverflow.com/a/14764368/559873 Однако я не могу запустить это на моем компьютере с Windows.

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

После запуска сборки мусора я смог успешно нажать.

git reset --hard
git gc --aggressive
git prune
git clean -df
0 голосов
/ 22 февраля 2019

ловушки предварительного приема выполняются на удаленном сервере git (gitlab, github или любом сервере git), а не на рабочей станции / сервере, на котором клонирован ваш репозиторий git (не путайте с предварительнокоммит-хуки, скрипты пре-коммит-хуков выполняются до того, как вы фиксируете свое клонированное хранилище, и находятся в YOUR_REPO / .git / hooks /)

В основном это удаленный сервер git, на который вы пытаетесь протолкнуть свой проект (репона языке github), с включенным хуком предварительной фиксации, который обычно настраивается владельцем / администратором группы (эквивалентно организации в GitHub), чтобы гарантировать, что любое push-событие следует определенным проверкам качества.

РЕДАКТИРОВАНИЕ:

Если вы обратите внимание на многословность ошибки push вашего git push, вы можете увидеть, что было пройдено несколько шагов проверки, таких как имя ветви и т. Д.но это не удается, потому что проверка различий занимает больше времени, чем тайм-аут.

remote: Validating diff contents... (cancelled after 41262.16ms)

Вы также можете связаться с администратором Group (организация), в которой находится ваш проект / репо для получения более подробной информации о проверках качества, ожидаемых обработчиком предварительного получения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...