2013-08-01 6 views
26

У меня есть имя папки utils Я хочу copy Эта папка от master Отрасль до work Отрасль. Как мне это сделать ?Git Скопируйте папку из главной ветки в другую ветвь

+0

Вы имеете в виду, что вы больше не хотите его на 'master', но вы * do * хотите его на' work'? Или вы просто хотите скопировать его на 'work'? –

+0

@CarlNorum вопрос обновлен – user2579475

+1

Я считаю, что вы можете использовать 'git subtree push', чтобы сделать это с помощью одной команды. Например, см. Https://gist.github.com/cobyism/4730490. –

ответ

48

Чтобы скопировать папку через:

$ git checkout work 
Switched to branch 'work' 
$ git checkout master -- utils 
$ git add utils 
$ git commit -m "Adding 'utils' directory from 'master' branch." 
[work 9fcd968] Adding 'utils' directory from 'master' branch. 
 1 file changed, 0 insertions(+), 0 deletions(-) 
 create mode 100644 utils/file 

Если вы хотите удалить его master после этого:

$ git checkout master 
Switched to branch 'master' 
$ git rm -r utils 
rm 'utils/file' 
$ git commit -m "Removing 'utils' directory." 
[master c786f95] Removing 'utils' directory. 
1 file changed, 0 insertions(+), 0 deletions(-) 
delete mode 100644 utils/file 

Тогда вы можете просто git push по мере необходимости. Вывод Git в вашем проекте может быть другим; Я просто сделал простой тестовый репо здесь только с одним файлом в каталоге utils.

+3

Только для рассмотрения, когда 'work' и' master' снова объединяются, возникает конфликт из-за различных операций, которые происходят с каждой стороны. – LopSae

+0

Интересно, что я попробовал это. И когда я соединил свою ветку с «хозяином», у меня не было конфликта. Может, гит стал умнее? – clinux

Смежные вопросы