Я только что сделал тест, создал новую папку / новую и дал ей разрешения 777. При щелчке правой кнопкой мыши на нем опции «Ubuntu One» были выделены серым цветом. Также попытался создать ярлык в ~ / dir, но не повезло.
Предполагая, что вы начинаете с чистой рабочей строки, вы можете сделать:
cd <root_directory_of_your_repo>
git checkout master
git checkout 49a732c -- .
Когда вы укажете файл (в данном случае . (корневой каталог вашего репо)) в качестве аргумента для git checkout, проверка не переключит ветвь (репо HEAD останется прежним). Он просто обновит индекс, чтобы этот файл соответствовал версии этого файла из указанной фиксации. Поскольку вы указали корневой каталог репо, все файлы в индексе будут обновлены в соответствии с указанным commit 49a732c
В git нет такой практики, как в вашей картине.
В ситуации, когда вы хотите вернуться в какое-то состояние, вы выполните следующее:
git reset --hard 49a732c
Этот шаг поместит вашу ветвь master в нужное состояние. Если вы хотите сохранить предыдущее состояние ветвления:
git checkout 48ah14s -b archive/my-unrecognized-experiments
Вы все еще можете сделать это после сброса, так как сброс не удаляет фиксации.
PS Ветвление является неотъемлемой частью git. Лучше научить ветви, а затем научить таким сложным (в git) вещам, как вы себе представляли.