Простой способ перенести один файл между ветвями в git? - PullRequest
1 голос
/ 21 марта 2012

Иногда я не осознаю, что я нахожусь на ветке master в git, и не осознаю этого, и я заканчиваю тем, что фиксирую что-то для освоения, когда хочу зафиксировать это в другой ветке, dev.

В этом случае я просто скопировал файл в другое место, извлеките dev, скопируйте файл обратно и подтвердите.

Я уверен, что есть лучший способ сделать это, не так ли?

В любом случае ветвь dev будет просто объединена с мастером.Могу ли я просто git merge master на ветке разработчика?Есть некоторые специфичные для ветви изменения, которые, кажется, не объединяются, когда я выполняю git merge dev на master.Будут ли эти изменения испорчены, если я объединю master с dev?

Ответы [ 3 ]

2 голосов
/ 21 марта 2012

git cherry-pick - это то, что вы ищете.

Скажем, вы приняли master ревизию A и хотите вместо dev включить A:

git checkout dev
git cherry-pick A

Готово. Теперь A находится в dev.

Нам еще нужно избавиться от A в master. Если A был последним коммитом, который вы сделали, этот поможет:

git checkout master
git reset --hard HEAD~

Если после A есть еще коммиты, вы можете либо git rebase A~ и удалить A затем, либо & ndash; если вы толкнули куда-то еще - ndash; просто git revert A.

0 голосов
/ 21 марта 2012

Слияние master с dev - очень распространенный рабочий процесс. Но если вы не хотите объединяться и по-прежнему хотите выполнять копирование, вам нужно только извлечь ветку dev и использовать git для извлечения файла:

git checkout master -- path/to/file
0 голосов
/ 21 марта 2012

В качестве альтернативы вы можете использовать

git checkout branch_name file_name

В этой статье представлен большой обзор преимуществ использования этого шаблона по сравнению с git cherry-pick (для определенных ситуаций).

edit: Кроме того, я предлагаю отобразить текущее имя git-ветки в приглашении bash , чтобы избежать недоразумений, о которых вы упомянули.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...