Копировать и вставлять коммиты в Git [duplicate]

Связанный .lib-файл связан с .dll

У меня была такая же проблема. Скажем, у меня есть проекты MyProject и TestProject. Я эффективно связал файл lib для MyProject с TestProject. Однако этот файл lib был создан, так как была построена DLL для MyProject. Кроме того, я не содержал исходный код для всех методов в MyProject, но только доступ к точкам входа DLL.

Чтобы решить проблему, я построил MyProject как LIB и связал TestProject с этим .lib-файлом (скопируйте вложенный файл .lib в папку TestProject). Затем я смогу снова создать MyProject как DLL. Он компилируется, поскольку lib, с которым связан TestProject, содержит код для всех методов в классах MyProject.

1396
задан robingrindrod 4 September 2013 в 08:00
поделиться

5 ответов

Выбор черри в git означает выбрать фиксацию из одной ветви и применить ее к другой.

Это контрастирует с другими способами, такими как merge и rebase, которые обычно применяют многие фиксации к другой ветви.

  1. Убедитесь, что вы находитесь в филиале хотите применить фиксацию.
    git checkout master
    
  2. Выполните следующее:
    git cherry-pick <commit-hash>
    

NB:

  1. Если вы выбрали вишню из публичной ветви, вам следует рассмотреть возможность использования
    git cherry-pick -x <commit-hash>
    
    . Это приведет к созданию стандартизованного сообщения фиксации. Таким образом, вы (и ваши сотрудники) можете все еще отслеживать происхождение коммита и избегать конфликтов слияния в будущем.
  2. Если у вас есть записи, прикрепленные к фиксации, они не следуют вишневый выбор. Вы также должны использовать:
    git notes copy <from> <to>
    

Дополнительные ссылки:

1669
ответ дан Ronan Boiteau 27 August 2018 в 00:04
поделиться

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

Чтобы использовать ее, вам просто нужно git cherry-pick hash, где hash является хешем фиксации из другой ветви.

Для полная процедура: http://technosophos.com/2009/12/04/git-cherry-picking-move-small-code-patches-across-branches.html

126
ответ дан Nobita 27 August 2018 в 00:04
поделиться

Это как Скопировать (откуда-то) и Вставить (где-то), но для конкретных коммитов.

Если вы хотите сделать горячее исправление, например, вы можете использовать функцию cherry-pick.

Сделайте свой cherry-pick в ветке разработки и merge, которые фиксируют ветвь релиза. Аналогичным образом сделайте cherry-pick из ветви релиза для управления. Вуаля

8
ответ дан SherylHohman 27 August 2018 в 00:04
поделиться

Эта цитата взята из; Управление версиями с Git (действительно отличная книга, я рекомендую вам купить ее, если вы заинтересованы в git)

Изменить: поскольку этот ответ все еще производит впечатление, я хотел бы добавьте очень приятное в видеоролик об этом:

Youtube: Введение в Git cherry-pick

Использование git cherry-pick Команда git cherry-pick commit применяет изменения, введенные именованным фиксатором в текущей ветке. Он представит новую четкую фиксацию. Строго говоря, использование git cherry-pick не изменяет существующую историю в репозитории; вместо этого он добавляет к истории. Как и в случае с другими операциями Git, которые вносят изменения в процесс применения diff, вам может потребоваться разрешение конфликтов для полного применения изменений от данного коммита. Команда git cherry-pick обычно используется для ввода определенных коммитов из одной ветви внутри репозитория в другую ветку. Обычно используется переадресация в прямом или обратном порту из ветки обслуживания в ветку разработки.

$ git checkout rel_2.3
$ git cherry-pick dev~2 # commit F, above

до: before [/g2]

после: after [/g3]

184
ответ дан Teoman shipahi 27 August 2018 в 00:04
поделиться

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

  1. checkout (switch to) целевая ветвь.
  2. git cherry-pick <commit id>
    
    Здесь commit id является идентификатором активности другой ветки .Eg.
    git cherry-pick 9772dd546a3609b06f84b680340fb84c5463264f
    
  3. нажмите на целевую ветвь

Посетите https://git-scm.com/docs/git-cherry-pick

25
ответ дан theTRON 27 August 2018 в 00:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: