Как правило, как было упомянуто в комментариях, между git switch
& git checkout
нет фактической разницы в том, что Вы можете делать с ветками.
Идея создания git switch
& git restore
, поскольку они были представлены вместе, возникла из множества вопросов и проблем, которые возникли у новых пользователей с git checkout
. Раньше вы могли использовать git checkout
до switch
для другой ветви, но также вы могли использовать ее для restore
изменений от некоторого определенного c коммита или даже для восстановления изменений для одного файла.
Проблема, которая была замечена некоторыми пользователями, заключается в том, что операции над коммитами / файлами и операциями над ветвями сильно различаются, и сгруппировать их по одной команде может быть проблематично. Вот почему были введены две новые команды restore
, чтобы разрешить восстановление изменений, и switch
, чтобы разрешить операции с ветвями.
Итак, чтобы подвести итог, между git switch
и git checkout
нет никакой разницы с точки зрения переключения ветвей, и нет никакой разницы между git restore
и git checkout
с точки зрения восстановления изменений для файлов или фиксаций. Вы можете использовать их взаимозаменяемо. Единственное, что нужно иметь в виду, это то, что switch
& restore
все еще помечены как экспериментальные, поэтому я бы не стал использовать их для создания долгоживущих сценариев или около того.