Błąd Gerrit, gdy brakuje Change-Id w komunikatach commit
Skonfigurowałem gałąź w zdalnym repozytorium i zrobiłem commity na tej gałęzi. Teraz chcę połączyć zdalną gałąź z zdalnym master.
Zasadniczo następujące są moje operacje:
- Oddział kasowy
- checkOut master
- połącz gałąź i napraw błędy scalania
- commit
- push origin HEAD: refs / for / master
Ale otrzymuj komunikaty o błędach w 5. kroku:
remote: Resolving deltas: 0% (0/12)
remote: ERROR: missing Change-Id in commit message
...
remote: Change-Id: I55862204ef71f69bc88c79fe2259f7cb8365699a
To ssh://[email protected]:29418/hello_git
! [remote rejected] HEAD -> refs/for/master (missing Change-Id in commit message)
11 answers
Sprawdź, czy Twoje commity mają Change-Id: ...
w swoich opisach. Każdy commit powinien je mieć.
Jeśli nie, użyj git rebase -i
, aby przeformułować komunikaty o zatwierdzeniu i dodać odpowiednie identyfikatory zmian(zwykle jest to SHA1 pierwszej wersji zatwierdzonego zatwierdzania).
Na przyszłość powinieneś zainstalować commit hook, który automatycznie dodaje wymagany identyfikator zmiany.
Wykonaj scp -p -P 29418 username@your_gerrit_address:hooks/commit-msg .git/hooks/
w katalogu repozytorium
lub pobrać je z
http://your_gerrit_address/tools/hooks/commit-msg
i skopiuj do .git / hooks
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-13 11:25:43
Spróbuj tego:
git commit --amend
Następnie skopiuj i wklej Change-Id: I55862204ef71f69bc88c79fe2259f7cb8365699a
na końcu pliku.
Zapisz i wciśnij jeszcze raz!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-05 15:07:16
Jeśli chcesz dodać Change-Id do wielu commitów, możesz pobrać hook z serwera Gerrit i uruchomić te polecenia, aby dodać Change-ID do wszystkich commitów, które ich potrzebują na raz. Poniższy przykład naprawia wszystkie zmiany w bieżącej gałęzi, które nie zostały jeszcze wypchnięte do gałęzi upstream.
tmp=$(mktemp)
hook=$(readlink -f $(git rev-parse --git-dir))/hooks/commit-msg
git filter-branch -f --msg-filter "cat > $tmp; \"$hook\" $tmp; cat $tmp" @{u}..HEAD
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-01 22:17:45
Jest tak dlatego, że Gerrit jest skonfigurowany tak, aby wymagał Change-Id w wiadomościach commit.
Http://gerrit.googlecode.com/svn-history/r6114/documentation/2.1.7/error-missing-changeid.html
Musisz zmienić wiadomości każdego commita, który naciskasz, aby uwzględnić identyfikator zmiany (używając git filter-branch
) i dopiero wtedy push.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-13 04:30:51
Możesz być adminem wykonującym jednorazowe push bezpośrednio do refs/changes/<change_number>
.
Na przykład, gdy commit bez Change-Id wyląduje w Subversion, wyciągasz go z Subversion używając git-svn i chcesz go zarchiwizować jako patchset Gerrit do zmiany Gerrit.
Jeśli tak, możesz przejść do strony ustawień projektu (http: / / [ścieżka instalacji] / # / admin/projects / [project-id]) i tymczasowo zmienić wartość "Require Change-Id in commit message" Na False.
Nie zapomnij następnie zmień go z powrotem na Inherit lub True!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-13 01:16:17
Sprawdź swój Git repo przed zatwierdzeniem
gitrepo/.git/hooks/commit-msg
Jeśli ten plik nie znajduje się w tej lokalizacji, otrzymasz błąd "Brak ID zmiany w komunikacie zatwierdzania" .
Aby to rozwiÄ ... zaÄ ‡ wystarczy skopiowaÄ ‡ wklejenie Hooka zatwierdzania.folder git.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-22 11:49:52
Też dostałem ten Komunikat o błędzie.
A to, co sprawia, że uważam, że warto tutaj udzielić odpowiedzi, to to, że odpowiedź od @ Rafała Rawickiego jest dobrym rozwiązaniem w niektórych przypadkach, ale nie we wszystkich okolicznościach. przykład, który spotkałem:
1.run "git log" we can get the HEAD commit change-id
2.we also can get a 'HEAD' commit change-id on Gerrit website.
3.they are different ,which makes us can not push successfully and get the "missing change-id error"
Rozwiązanie:
0.'git add .'
1.save your HEAD commit change-id got from 'git log',it will be used later.
2.copy the HEAD commit change-id from Gerrit website.
3.'git reset HEAD'
4.'git commit --amend' and copy the change-id from **Gerrit website** to the commit message in the last paragraph(replace previous change-id)
5.'git push *' you can push successfully now but can not find the HEAD commit from **git log** on Gerrit website too
6.'git reset HEAD'
7.'git commit --amend' and copy the change-id from **git log**(we saved in step 1) to the commit message in the last paragraph(replace previous change-id)
8.'git push *' you can find the HEAD commit from **git log** on Gerrit website,they have the same change-id
9.done
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-04 08:31:29
Rozwiązaliśmy ten problem dziś rano poprzez ponowne klonowanie repozytorium i ponowne zastosowanie zmian. Jest to najprostszy sposób, aby ponownie zsynchronizować kopię lokalną z Gerrit. Jak zawsze najpierw stworzyliśmy kopię zapasową.
Chociaż istnieje wiele innych szalenie skomplikowanych rozwiązań, często korzystne jest proste podejście, aby uniknąć pogorszenia sytuacji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-09 14:14:16
Musisz postępować zgodnie z poniższymi instrukcjami w 2 krokach:
[Problem] remote: Podpowiedź: aby automatycznie wstawić Change-Id, zainstaluj hook:
1) gitdir=$(git rev-parse --git-dir);
2) scp -p -P 29418 <username>@gerrit.xyz.se:hooks/commit-msg ${gitdir}/hooks/
Normalnie $gitdir =".git". Musisz zaktualizować nazwę użytkownika i link Gerrit.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-30 13:26:09
1) gitdir=$(git rev-parse --git-dir);
2) scp -p -P 29418 <username>@gerrit.xyz.se:hooks/commit-msg ${gitdir}/hooks/
A) Nie wiem jak wykonać krok 1 w windows więc pominąłem go i użyłem hardcoded path w step 2 scp -p -P 29418 <username>@gerrit.xyz.se:hooks/commit-msg .git/hooks/
B) W przypadku wystąpienia błędu poniżej, ręcznie utwórz katalog "Hooki" w .git folder
protocol error: expected control record
C) Jeśli masz submodule powiedzmy "XX", musisz tam powtórzyć krok 2 i tym razem zastąpić ${gitdir} ścieżką submodules
D) w przypadku, gdy scp nie jest rozpoznawany przez windows podaj pełną ścieżkę scp
"C:\Program Files\Git\usr\bin\scp.exe"
E) .folder git jest obecne w Twoim projekcie repo i jest to ukryty folder
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-09 04:29:21
Może się to zdarzyć również, jeśli masz takie ograniczenie:
Proszę wprowadzić komunikat o zatwierdzeniu zmian. Linie zaczynające się od ' # ' będą ignorowane, a pusty komunikat przerywa commit.
A Ty mnie lubisz: napisz wiadomość zatwierdzającą zaczynającą się od"#".....
Miałem ten sam błąd, ale już miałem commit-msg
i zrobiłem rebase
i w ogóle. Bardzo głupi błąd: d
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-27 05:02:59