Как мне проще всего реорганизовать git-репозиторий? - PullRequest
3 голосов
/ 18 марта 2019

Я хотел бы реорганизовать git-репо для управления несколькими проектами.У меня есть такой как

my-org
|--cool-repo
   |--file-one
   |--file-two

И я хотел бы сделать его похожим на

my-org
|--cool-repo
   |--project-one
      |--file-one
      |--file-two
   |--project-two

Я прочитал некоторые из git docs, но я не уверен, какие команды мне следует изучить,Мне не нужно сливать код или, нет, удалять что-либо.

Я не хочу ничего ломать.

Поскольку моя команда начинает второй, третий и более поздние проекты, я бы хотел организовать "подкаталоги" или "подпроекты" (я не уверен втермин «использовать» для хранения документов, связанных с этими добавленными проектами.

Что мне делать или где лучше возобновить расследование?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 18 марта 2019

Пара замечаний о вашей ситуации. В отличие от SVN и других традиционных систем управления исходным кодом, Git в первую очередь предназначен для размещения 1 проекта на репо . Это ни в коем случае не является жестким правилом, есть способы разместить исходный код из более чем одного проекта в одном репозитории Git. Но вот две причины, по которым стоит использовать вместо Git subtree или submodule.

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

2.) Поскольку Git commit - это фиксация всего репо, а не только подпапки, merge в master (или эквивалентную) ветвь может стать сложной для новичка. И history ветви может быть более сложным, чтобы понять, что действительно изменилось в наборе коммитов.

Может быть полезно дать команде разработчиков полного стека один репо для клонирования, чтобы работать над всем решением. В вашем случае я мог бы рассмотреть репозиторий «host», который содержит subtrees или submodules для репозиториев Git, содержащих различные компоненты решения полного стека. Это позволило бы разработчику сделать один клон и получить полный исходный код.

Я предлагаю использовать submodule, если компоненты тесно связаны и часто меняются синхронно. Используйте subtree, если компоненты интегрируются реже и / или по заданному графику выпуска.

2 голосов
/ 18 марта 2019

Добро пожаловать в переполнение стека.

Если ваш код зафиксирован и передан, вы почти ничего не сможете сделать безопасно, так что не беспокойтесь об ошибках.

Как говорится, в вашем конкретном случае вам не нужно делать много. Просто создайте новый каталог project-one, используя mkdir project-one. Переместите свои file-one и file-two в него, используя git mv file-one file-two project-one, а затем подтвердите новые изменения, используя git commit (команда git mv автоматически установит переименования).

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