Intereting Posts
Как я могу создать прямоугольник с двумя изогнутыми сторонами в XML-чертеже? Android переименовать базу данных SQLite Как нарисовать сетку wireframe со скрытыми линиями, удаленными в OpenGL ES? Ошибка записи Bluetooth Bluetooth на 4.2.2 FindViewById возвращает null Поделиться изображением и текстом через Whatsapp или Facebook Список показывает черный цвет Android: неожиданное поведение последних приложений Попытка вызвать виртуальный метод «boolean com.google.android.finsky.api.model.DfeToc.isGplusSignupEnabled ()» в ссылке на нулевой объект Доступ к высокоскоростной fps-камере на Android Использование «dontwarn» в proguard Мне нужны как Robolectric, так и Mockito в моем тесте, каждый из них предлагает свой собственный TestRunner Как включить / отключить режим полета в Android? Ошибка: com.jayway.maven.plugins.android.generation2: android-maven-plugin: 3.6.0: generate-sources Внутри проекта Eclipse Android запускаются классы Java с основными (String args), поскольку приложение Java вызывает «Недопустимый макет java.lang.String at value»

Как git push работает с инструментом репо с Android?

Я привык использовать git с одним хранилищем. Тем не менее, я в последнее время занимался разработкой Android и пытаюсь обернуть голову вокруг repo . Я создал некоторые пользовательские репозитории git, создав xmls в .repo/local_manifests (я использую repo 1.19), и repo sync работает нормально.

Когда я смотрю на пользовательские репозитории git, они говорят: # Not currently on any branch. Это похоже на то, когда я использую команду git checkout abcd1234 (чтобы проверить фиксацию 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. Честно говоря, у меня все еще есть очень абстрактное понимание repo и Gerrit .

Технически, если вы это сделаете

 git checkout origin/master 

Вы сразу попадаете в отдельное состояние HEAD.

К лучшему или худшему, это именно то, что по умолчанию выполняет repo sync , так что каждый из ваших репозиториев, перечисленных в манифесте, находится в состоянии автономного состояния после новой repo sync .

Отдельный HEAD – это совершенно нормальное состояние для repo – если начало / мастер перемещается вперед, 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! 

(Это предполагает, что ваш манифест содержит правильные настройки для сервера просмотра).