Геррит публикует патч на нелокальные изменения - PullRequest
0 голосов
/ 07 октября 2018

Я опубликовал изменение в Gerrit проекта, над которым я работаю, и с тех пор сделал несколько патчей.Я сейчас на другой машине и не имею доступа к моей предыдущей.В проекте используется инструмент git-repo от Google.Я хочу каким-то образом получить изменения локально, изменить их и опубликовать новый патч для текущего изменения без создания нового.

Рассматриваемый Gerrit предназначен для LineageOS , и я использовал эти инструкции , чтобы опубликовать мои изменения.

Я все еще довольно новичок в Геррите, поэтому я буду рад, если вы также сможете объяснить, что делают различные шаги.

1 Ответ

0 голосов
/ 08 октября 2018

Поскольку вы находитесь на новом компьютере, вам необходимо завершить начальную настройку , прежде чем вы сможете получить доступ к репозиторию проектов в Gerrit.

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

git clone <repository url>

Однако клонированный репозиторий пока недоступен, так как он не содержит коммит, соответствующий новейшему набору патчей изменения.,Набор патчей по-прежнему открыт, не отправлен и не объединен с целевой веткой, поэтому его нельзя клонировать по умолчанию.Вы хотите изменить его и создать новый набор патчей.Теперь вам нужно получить коммит и проверить его.На странице изменений вы можете найти Download в правом верхнем углу.Нажмите, и вы увидите Checkout.Скопируйте команды.

cd <local repo>
# paste and run the copied commands
# the commands are git fetch and git checkout, like git fetch <url> refs/changes/xx/xxxx/x && git checkout FETCH_HEAD
# make changes
git add <changed files>
git commit --amend
git push origin HEAD:refs/for/<branch>

Обратите внимание, что не изменяйте и не удаляйте идентификатор изменения в сообщении фиксации, в противном случае будет создано новое изменение вместо нового набора патчей.Если вы сделали это по ошибке, вы можете снова запустить git commit --amend и заменить новый идентификатор изменения оригинальным.Кроме того, если вас волнует стоимость сетевого и дискового пространства, вы можете использовать git init foo && cd foo && git remote add origin <repository_url> вместо git clone <repository url> и добавить --depth=2 в скопированном git fetch.

Gerrit поддерживает онлайн-редактирование.Поэтому, если вы хотите внести незначительные изменения, вы также можете отредактировать последний набор патчей, чтобы создать черновик, а затем опубликовать его на странице изменений.Вы можете найти кнопку Edit над списком файлов.

...