Git: Удалить файл из каталога, но убедитесь, что версия этого файла остается в истории git - PullRequest
0 голосов
/ 29 августа 2018

Я новый пользователь Git, и мне интересно, возможен ли следующий сценарий:

Я хочу «очистить» каталог, который я использовал, чтобы сохранить четкий контроль над моим проектом, удалив некоторые из файлов, которые в нем содержатся. Допустим, файл, который я хочу удалить, называется old.txt.

Однако я не могу быть уверен, что больше никогда не захочу возвращаться к этому файлу - поэтому я хотел бы иметь возможность вернуться к нему с помощью истории git.

Есть ли способ убедиться, что это все еще возможно?

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Скажем, у вас есть удаленное хранилище, например, Github или Bitbucket.

Git позволяет вам перемещаться между всеми состояниями вашего репозитория с помощью команды git checkout.

Единственное, что может потерять old.txt, - это выполнить git push --force или подобное в вашем хранилище. Помимо этой команды вы в безопасности.

Если вы не используете флаг --force, команда добавит только некоторую историю без изменения текущей истории.

Конечно, я откладывал возможность сбоя или повреждения данных на сервере Github / Bitbucket или возможность удаления хранилища.

0 голосов
/ 29 августа 2018

При обходе дерева коммитов (например, с помощью журнала Git) вы все равно сможете увидеть изменения, которые вы внесли в свой файл, и посмотреть, какой коммит удалил его. Однако это не полезно, если вы хотите вернуться и, возможно, восстановить файл в более поздний момент времени.

Я бы предложил использовать команду Git tag для пометки («тега») версии вашего программного обеспечения перед выполнением удаления:

git tag -a v0.3-snapshot-before-refactoring -m "Some meaningfull message"

Затем вы можете получить эту версию, используя команду Git checkout :

git checkout v0.3-snapshot-before-refactoring
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...