Кажется, мне нужно научиться использовать git. Что, вероятно, хорошо (TM). Однако, читая онлайн-руководства и man-страницы, я просто не могу понять свою терминологию. Все всегда определяется в терминах самих себя или других необъяснимых терминов (сделайте "man git", и вы понимаете, что я имею в виду).
Итак, существует ли более DAG-подобная структура определений терминов, включая некоторые из следующих (все взяты из git man-страниц (ы)!). Возможно, используя файловую систему в качестве отправной точки, и не предполагая, что читатель хорошо разбирается в svn (чего я не знаю).
- репо
- репозиторий
- a git
- "git"
- Индекс
- клон
- совершить
- филиал
- дерево
- вверх
- голова
- ГОЛОВКА
- версия
- тег
- Архив
- Патч
- представление
- ревизия
- копить
- Архив
- объект
- Модуль
- подмодуль
- refspec
- история
В то время как я могу найти объяснения для некоторых, они обычно имеют отношение к другому. Также некоторые другие термины, которые я знаю из других контекстов (например, UNIX diff). Однако некоторые другие, я думал, что знаю...
Я понял, что есть репозитории (похожие на gits? и/или деревья? upstream?), которые вы копируете (clone? branch?), чтобы физически загружать файлы на ваш жесткий диск. Тогда есть ветки (похожие на changeets?), Теги и коммиты (похожие на патчи?), Но их различие не ясен. Какие файлы вносят изменения? Что делает мои файлы локальными и что может (не дай бог) представить мой код для интернетов?
Каков рекомендуемый способ работы, когда дело касается ветвей, тегов и коммитов, поэтому их легко менять между версиями и импортировать обновления из общедоступных gits.
//T, кусая свой язык, чтобы контролировать свое разочарование...