Подтвердить что ты не робот

Gerrit - git (pull vs checkout vs cherrypick), для чего?

В Android gerrit ex: ссылка, чтобы загрузить патч, я вижу 4 варианта.

  • Репо скачать
  • фотографии
  • тянуть
  • вишневого выбор

В чем разница между ними?

Вот что я думаю о них. Просьба уточнить

  • repo download → Загружает полный исходный код (из всех git репозиториев в проекте) до этого фиксации
  • checkout → Не уверен, что это такое.
  • pull → Не уверен, что он делает?
  • cherry-pick → Он пытается загрузить только это изменение и объединить его в исходный код.

Я знаю, что вытаскивание и проверка отличаются от вишневого. Но как они отличаются?

4b9b3361

Ответ 1

Вы правы в первом. Вот остальные:

  • Checkout: Выбирает последние изменения. Вы должны уже загрузить это репо. Он не объединяет эти новые изменения, но заставляет ваш рабочий каталог отражать их. Вы можете объединить их в свободное время позже.

  • Pull: Выбирает изменения И объединяет их в локальную ветвь с тем же именем.

  • Cherry-pick: Выбирает commit и воспроизводит его поверх текущей локальной ветки, поэтому создает совершенно новую фиксацию > который имеет те же самые изменения, что и тот, который он извлек.

Они немного отличаются от того, что они на самом деле означают в git. checkout и cherry-pick не будут автоматически получать изменения. checkout просто берет HEAD в коммит, который вы указываете, тем самым создавая рабочий каталог точно так же, как и при этом фиксации. Аналогично, cherry-pick используется для повторных коммитов, к которым у вас уже есть локальный доступ.

Ответ 2

С git у вас есть собственная версия репозитория. Это вы синхронизируете с репозиториями других. С помощью fetch вы обновляете свои удаленные ссылки, т.е. обновите то, что получили другие. С помощью checkout вы переключаетесь на конкретную ревизию. Вы хотите сделать это, если вы только начали использовать это.

Теперь, если вы уже используете удаленный филиал, вам может потребоваться обновить локальную ветвь. Это то, что pull делает для вас. Он применяет все изменения в удаленной ветки к вашей локальной. Вам это нужно, если вы используете его уже, просто хотите обновить.

cherry-pick позволяет вам выбрать одно изменение из любого места в репозитории и применить его в своей локальной ветке. Это удобно, если вы по какой-либо причине находитесь в другом филиале, но все же нуждаетесь в этом конкретном изменении. Имейте в виду, что если вы вишневы, не нажимая это изменение, это изменение не является постоянным. Он привязан к вашему локальному репозиторию, но не к удаленному (в любом случае это может быть то, что вам нужно).

Подробнее о git основах, например здесь

Ответ 3

checkout: вы хотите использовать его, когда вы зависите от конкретного CHANGE в ветке. скажите, что ваш коллега проверял некоторые API-интерфейсы для вас, и вы можете проверить, что CHANGE в новом локальном филиале и начать работу над вашими изменениями.

Cherrypick: вы хотите применить конкретный CHANGE к своей локальной ветки или к определенной ветки релиза, затем вы черрипик. Представьте, что у вас есть исправление патча в версии 1.1, и вы хотите применить это исправление /CHANGE к своей ветке 2.0, вы можете просто черничать ее. Он создаст новый CHANGE в вашей ветке 2.0, содержащий исправление.

здесь представлено графическое представление: http://think-like-a-git.net/sections/rebase-from-the-ground-up/cherry-picking-explained.html