Gerrit 在非本地更改上发布补丁
Gerrit publish patch on non local change
我已经发布了对我正在从事的项目的 Gerrit 的更改,并且从那以后打了一些补丁。然而,我现在在另一台机器上,无法访问我以前的机器。该项目使用 Google 的 git-repo 工具。我想以某种方式在本地获取更改,修改它们并在不创建新补丁的情况下发布当前更改的新补丁。
有问题的 Gerrit 用于 LineageOS and I have used these instructions 发布我的更改。
我对 Gerrit 还是比较陌生,所以如果你也能解释一下各个步骤的作用,我会很高兴。
由于您使用的是新机器,因此您需要完成 initial setup 才能访问 Gerrit 中的项目存储库。
如果您需要构建代码,您可能需要重新同步所有项目。如果没有,您可以只克隆您正在处理的项目。
git clone <repository url>
但是,克隆的存储库到目前为止还不能使用,因为它还不包含与更改的最新补丁集相对应的提交。 patchset还是open的,没有提交合并到目标分支,所以默认是不能clone的。你想修改它并创建一个新的补丁集。现在您需要获取提交并检查它。在更改页面上,您可以在右上角找到 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>
请注意,不要修改或删除提交消息中的更改ID,否则将创建新的更改而不是新的补丁集。如果你弄错了,你可以再次 运行 git commit --amend
并将新的 change id 替换为原来的。此外,如果你关心网络和磁盘的成本space,你可以使用git init foo && cd foo && git remote add origin <repository_url>
代替git clone <repository url>
,并在复制的git fetch
中添加--depth=2
。
Gerrit 支持在线编辑。所以如果你想做一些小的改动,你也可以编辑最新的补丁集来创建一个草稿,然后发布在更改页面上。您可以在文件列表上方找到 Edit
按钮。
我已经发布了对我正在从事的项目的 Gerrit 的更改,并且从那以后打了一些补丁。然而,我现在在另一台机器上,无法访问我以前的机器。该项目使用 Google 的 git-repo 工具。我想以某种方式在本地获取更改,修改它们并在不创建新补丁的情况下发布当前更改的新补丁。
有问题的 Gerrit 用于 LineageOS and I have used these instructions 发布我的更改。
我对 Gerrit 还是比较陌生,所以如果你也能解释一下各个步骤的作用,我会很高兴。
由于您使用的是新机器,因此您需要完成 initial setup 才能访问 Gerrit 中的项目存储库。
如果您需要构建代码,您可能需要重新同步所有项目。如果没有,您可以只克隆您正在处理的项目。
git clone <repository url>
但是,克隆的存储库到目前为止还不能使用,因为它还不包含与更改的最新补丁集相对应的提交。 patchset还是open的,没有提交合并到目标分支,所以默认是不能clone的。你想修改它并创建一个新的补丁集。现在您需要获取提交并检查它。在更改页面上,您可以在右上角找到 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>
请注意,不要修改或删除提交消息中的更改ID,否则将创建新的更改而不是新的补丁集。如果你弄错了,你可以再次 运行 git commit --amend
并将新的 change id 替换为原来的。此外,如果你关心网络和磁盘的成本space,你可以使用git init foo && cd foo && git remote add origin <repository_url>
代替git clone <repository url>
,并在复制的git fetch
中添加--depth=2
。
Gerrit 支持在线编辑。所以如果你想做一些小的改动,你也可以编辑最新的补丁集来创建一个草稿,然后发布在更改页面上。您可以在文件列表上方找到 Edit
按钮。