Ответ 1
git checkout -- .
, очевидно, будет работать только с текущим каталогом (и его подкаталогами), git reset --hard
будет работать на полном рабочем дереве.
git checkout -- .
будет обновлять только рабочее дерево и оставлять уже поставленные файлы как есть, тогда как git reset --hard
будет соответствовать индексу и рабочему дереву с фиксацией HEAD.
при использовании с refspec:
-
reset
установит текущую ветвь ветки на заданную фиксацию (и соответствует индексу и рабочему дереву). -
checkout
переключится на эту ветку, оставив локальные изменения неповрежденными, когда они касаются файлов, которые не менялись между текущей ветвью и ветвью, которую нужно проверить