Чтобы заполнить еще несколько деталей:
... Почему даже необходима команда 'git branch?
Команда git branch
имеет много опций,такие как:
git branch --set-upstream-to
или:
git branch --list
или:
git branch -d
, которые делают вещи, которые не git checkout
и не новые (Git 2.23 или более поздняя версия) git switch
сделает.
То, что git branch --list
делает , может быть выполнено с помощью git for-each-ref
. То, что git branch --set-upstream-to
делает , можно сделать с помощью git config
. Если вы хотите провести аналогию, команды Git: tools . Вы можете резать древесину ленточной пилой, ножовкой, копировальной пилой, сверлом или долотом. Если вы хотите сделать ласточкин хвост, большинство из этих инструментов могли бы справиться с этой задачей, но это будет намного быстрее, лучше и проще с маршрутизатором и приспособлением для ласточкиного хвоста. Если ваша цель - установить набор замков и ручек, рассмотрите кольцевую пилу и сверло.
(Команда git checkout
на самом деле содержит слишком много инструментов, встроенных в нее - в моемВ любом случае, по-видимому, официальные люди по обслуживанию Git приходят к такому же мнению, поскольку две основные задачи, которые может выполнять git checkout
, теперь выполняются двумя отдельными интерфейсными командами: git switch
и git restore
Конечно, в обычном Git-стиле git restore
теперь может делать несколько вещей, которые git checkout
не могут.)
Git в некотором смысле в основном представляет собой набор инструментов для манипулирования графами, которые могут перетаскиватьисходный код вместе с ними. Граф, которым вы управляете, представляет собой граф коммитов , который состоит из узлов (вершин графа), которые являются коммитами, соединенными односторонними краевыми связями (дугами), которые являются родительскими хэш-идентификаторами, хранящимися в каждом коммите. узел. См. Думай как (а) Git .