gpt4 book ai didi

android - git push 如何与 android 的 repo 工具一起工作?

转载 作者:IT王子 更新时间:2023-10-29 01:01:05 25 4
gpt4 key购买 nike

我习惯于将 git 与单个存储库一起使用。不过,我最近一直在涉足 Android 开发,并试图全神贯注于 repo。我通过在 .repo/local_manifests 目录中创建 xml 设置了一些自定义 git repos(我使用的是 repo 1.19)并且 repo sync 工作正常。

当我查看自定义 git 存储库时,他们说 # Not currently on any branch. 这看起来就像我使用像 git checkout abcd1234 这样的命令(检查out commit abcd1234) 而不是 git checkout origin/master。至于进行更改,我不确定如何推回原点。这是我正常的 git 工作流程。

git checkout origin/master
#make changes to working directory
git add .
git commit -m 'useful message'
#assume time has passed and there could be changes upstream
git fetch
git rebase origin/master
git push origin master

现在我在技术上不再在一个分支上,我该如何推送更改?我知道有一个工具 repo upload 但我不确定它是如何工作的。我从未使用过 Gerrit,但也许值得设置一下,以便其他团队成员可以在将代码推送到 Github 之前对其进行审查。老实说,我对repoGerrit的理解还是很抽象。

最佳答案

从技术上讲,如果你这样做

git checkout origin/master

您立即进入分离的 HEAD 状态。

无论好坏,这正是 repo sync 默认执行的操作 - 这样 list 中列出的每个存储库在新鲜的 repo sync 之后都处于分离的 HEAD 状态>.

Detached HEAD 是 repo 的完全正常状态 - 如果 origin/master 向前移动,repo sync 也会移动你的本地状态(实际上它会 git checkout origin/master 再次)。

但是,如果您想进行自己的更改并将它们推送到上游,这种奇怪的状态并不好。在这种情况下,您可以执行以下操作之一:

repo start master .

表示开始跟踪当前项目(.)中名为master的分支。

或者,您可以使用(实际上我更喜欢这个):

git checkout --track origin/master

这两种方法都会给你几乎相同的结果:你不再处于分离的 HEAD 状态,而是在将跟踪远程分支的本地分支上。

此时,您可以进行本地提交并使用标准 git push 将它们直接推送到上游(但这可能是服务器策略不允许的),或者您可以提交以供 Gerrit 代码审查(强烈推荐并且是大多数 Android 商店的默认选择)。一旦跟踪分支到位,提交到 Gerrit 就像

repo upload     # upload changes in multiple repositories at once

repo upload .   # upload changes in current git repo only, fast!

(假设您的 list 包含审核服务器的正确设置)。

关于android - git push 如何与 android 的 repo 工具一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14540262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com