https://github.com/tenphi/gitst
Git subtree helper
https://github.com/tenphi/gitst
Last synced: about 1 month ago
JSON representation
Git subtree helper
- Host: GitHub
- URL: https://github.com/tenphi/gitst
- Owner: tenphi
- Created: 2014-10-31T09:05:05.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2014-11-12T09:09:59.000Z (over 11 years ago)
- Last Synced: 2025-03-21T23:43:05.358Z (about 1 year ago)
- Language: JavaScript
- Size: 156 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Git Subtree Helper
Консольная утилита для работы с git subtree.
## Установка
```bash
$ npm install -g gitst
```
## Описание
Git-репозиторий не содержит достаточной информации для восстановления информации о подключенных к нему других репозиториев, однако хранит информацию по префиксах (путях) по которым они были установлены. Используя соглашения о префиксах, git subtree восстанавливает всю необходимую информацию для предоставления более удобного интерфейса работы с subtree без каких либо конфигураций.
Соглашение о префиксах заключается в следующем: Префикс может быть любым, но последняя директория в пути должна иметь точно такое же имя, как origin подключенного репозитория без учета регистра. Имена origin'ов должны быть написаны исключительно маленькими буквами.
Например: Если мы подключаем репозиторий с именем **kit**, то его префикс (путь) должен иметь вид `path/to/kit`.
$ git remote add kit user@git.repository.com/kit.git
$ git subtree add --prefix=path/to/kit kit master
path/to/ **kit** - имя последней директории совпадает с именем origin'а **kit**.
## Команды
Отобразить все подключенные subtree:
$ gitst list
2 subtrees found:
./dir2/kit1 <- kit1
./dir2/kit2 <- kit2
Обновить subtree:
$ gitst fetch {origin}
Забрать изменения из origin:
$ gitst pull {origin} {branch}
Отправить изменния в origin:
$ gitst push {origin} {branch}
Если вы выполняете команду **push** или **pull** без указания origin, важно помнить, что если вы выполняете команды для нескольких репозиториев одновременно, то **gitst** не получает информацию о ветке. Потому он считает, что нужно использовать ветку **master**.
Если одна из операций завершилась ошибкой, **gitst** выведет её на экран и завершит работу. Это даёт возможность последовательно решать конфликты не прибегая к ручному перечислению подключенных репозиториев.