【问题标题】:How to configure Android studio with gerrit commit and push如何使用 gerrit 提交和推送配置 Android Studio
【发布时间】:2017-10-30 14:12:23
【问题描述】:

我们一直使用 gerrit 作为我们的 android 源代码仓库。我们通常使用 git bash 使用 gerrit 执行推送、拉取和提交的命令。我想知道我们如何使用 gerrit 配置 android studio 本身,这样我就不需要在 git bash 中输入命令。我试图在 git 版本控制选项中更改 Android Studio 中的一些设置,但这确实不起作用。 另一件事是,每当我们通过 git commit 命令进行提交时,git 创建(或者我确定的其他东西,因为我不太擅长 git 命令和 env)changeId: 这对于推送非常重要/修改更改。从工作室提交时如何添加 changeId。

如果我对我的问题不是很清楚,请告诉我,我会补充更多。

这是我从工作室推 Ui 的图像,我看不到 origin HEAD:

【问题讨论】:

标签: android git gerrit android-studio-3.0


【解决方案1】:

Android Studio 的 Git GUI 应该能够通过菜单和按钮完成几乎所有的工作。唯一烦人的事情可能是您需要将推送菜单中的远程引用从masterrefs/heads/master 更改为refs/for/master 以创建更改以供审核。

Change-Id 由钩子commit-msg 创建。据我所知,如果您使用 Google 的 REPO,它在 repo/hooks 下。 repo sync 克隆的存储库已部署 commit-msg,因此您无需担心。但是对于git clonegit init 创建的那些仓库,你需要安装它。 Gerrit 的项目页面提供了一个克隆命令,其中包含scp,它会自动下载和复制钩子。如果您通过 Android Studio 克隆,您可以手动将其安装在 .git/hooks/ 下的一个仓库,或者将其复制到 Windows 上的 $GITBASH/ming64(32)/share/git-core/template/hooks,以便任何新创建的仓库都会自动安装它。

【讨论】:

  • 感谢@ElpieKay ChangeId 我能够添加的答案,但问题是推送。我从 git bash 用来推送的命令是 git push origin HEAD:refs/for/master 而在工作室中我看不到 origin HEAD : ,我只能看到 origin : 这不允许我推送。再次检查问题,我已添加图片
  • @anshul 将目的地更改为refs/for/master 似乎没问题。但是,你有一个合并提交Merge remote tracking branch 'origin/master'。默认情况下,发生合并时不会调用钩子commit-msg,因此合并提交的消息中没有Change-Id,除非您在合并完成后立即运行git commit --amend
  • 非常感谢朋友。
  • @anshul 很高兴。很高兴它有帮助。
  • 您可以使用“git config remote.origin.push”检查(并设置)推送配置,它应该是:remote.origin.push=refs/heads/master:refs/for/master ,那么 android studio 应该使用它作为 push 的默认值
猜你喜欢
  • 2015-10-30
  • 2014-08-13
  • 1970-01-01
  • 1970-01-01
  • 2017-06-18
  • 2013-02-13
  • 2019-07-08
  • 1970-01-01
  • 2017-02-28
相关资源
最近更新 更多