Я хотел бы поддерживать мелкий, зеркальный, голой клон из нескольких ветвей. Я буду клонировать локально из этого для разных ветвей проекта. например.
+------------------------------------------------------------------+
| repo1: server1:original-repo.git branches: A, B, C, D, E |
+------------------------------------------------------------------+
↓
+------------------------------------------------------------------+
| repo2: server2:shallow-bare-selective-clone branches: A, B only |
+------------------------------------------------------------------+
↓ ↓
+-------------------------------+ +--------------------------------+
| repo3: server2:clone repo2, A | | repo4: server2:clone repo2, B |
+-------------------------------+ +--------------------------------+
Итак, я могу сделать repo2 следующим образом
git clone --bare --mirror --depth 1 server1:repo1 repo2
cd repo2
git fetch --depth 200 origin A
git fetch --depth 200 origin B
И тогда я думаю, что repo3 и 4 действительно легки - они могут клонировать все, что они хотят от repo2, они будут ограничены поверхностностью repo2.
Но сохранение repo2 до сегодняшнего дня с repo1 при сохранении его неопределенности - это то, за что я застрял (в идеале я хотел бы сохранить все с определенной фиксации, но я понимаю, что это невозможно). Кажется, мне приходится делать несколько команд git fetch каждый раз, правильно? Есть ли способ поместить это в файл конфигурации, чтобы я мог просто сделать git fetch
, и он знает, что я имею в виду?