2013-08-19 4 views
0

Я создал проект javascript GitHub и, получив исходный код в правильной форме, позже создал страницы github для проекта. Это создало вместе с моей веткой master новую ветку gh-pages, в которой будет содержаться содержимое этих страниц.Синхронизация папки между двумя ветвями

Теперь я хочу показать, что мой проект работает как демонстрационный пример на тех же страницах. Я уже создал копию соответствующей части источника, но я считаю, что каждый раз, когда я делаю изменения, мне нужно внести изменения с обеих сторон (master и gh-pages), или что еще хуже: объединить изменения, игнорируя большинство (например, модульные тесты).

Я видел поддеревья как способ сохранить синхронизацию изменений по нескольким репозиториям, но я не совсем понимаю, применимо ли это к моему делу и как.

Как добиться того, чтобы одна папка синхронизировалась по двум ветвям?

Спасибо!

ответ

0

Вы можете оформить конкретный файл или папку из конкретной отрасли или совершить подобные

//current branch: gh-pages 

git checkout master yourfolder/ 

Это проверяет конкретную папку, которую вы хотите синхронизировать с главной ветви в ваши Gh-страницы.

Теперь вы можете совершать только изменения в этой конкретной папке.

+0

Спасибо! Я пробовал это и отлично работал. Это проще, если вы изолируете общий раздел в определенном пути, чтобы избежать слияний с одной веткой на другую. Таким образом, я сохраняю свои демо и HTML на «gh-страницах», а также исходный код и тесты в ветке 'master', и мне нужно только синхронизировать одну общую часть. – Alpha

0

я вам не хотелось бы проверить ветку GH-страниц (например, избежать необходимости копить), вы можете

git commit-tree -p gh-pages -m "" master:html \ 
| xargs git update-ref refs/heads/gh-pages 
+0

Не знал об этих командах. Если я правильно понял, то, что вы здесь делаете, переводит текущий HEAD на gh-страницы, а затем фиксирует все дерево. Это должно переместить текущий HEAD до последнего фиксации текущей ветки, не так ли? Дайте мне знать, если я ошибаюсь. Если нет, то что произойдет, если возникнут конфликты? Как эти команды обрабатывают фиксацию целого дерева, а не один набор изменений? – Alpha

+0

эти команды являются более низкими, чем commit-commit, начатые как сценарий на основе дерева записей, commit-tree и update-ref. Но дерево для вашего html-каталога уже находится в репозитории. Если вас это интересует, я рекомендую учебник gitcore. – jthill