Удалить код из Git таким способом, который позволяет легко вернуть его при необходимости? - PullRequest
2 голосов
/ 13 декабря 2011

У меня есть проект, который должен иметь много избыточного кода, который должен быть удален.

Какие операции Git мне нужно сделать, чтобы все еще было легко найти удаленный источник, а также легко вернуть его в проект, если мне нужно?

Нужно ли делать какие-либоветви?Метки?Или просто удалить файлы из моей основной ветки?

Мой проект размещен на GitHub, если эта информация полезна:)

Ответы [ 4 ]

2 голосов
/ 13 декабря 2011

Просто удалите его из главной ветки, вы всегда можете заглянуть в историю.

- редактировать -

Вернуть его обратно может быть сложнее. Затем вы можете отключить текущий код, переместить ветку в github и затем удалить из master. В этом случае вам будет проще выбрать код, который вы удалили позже.

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

1 голос
/ 13 декабря 2011

Я хотел бы просто удалить код за один или несколько коммитов в основной ветке (я предполагаю, что у вас мало разработчиков и нет необходимости в продвинутом рабочем процессе). Затем вы можете cherry-pick или revert зафиксировать коммиты, если хотите вернуть код, или использовать git show для просмотра удаленного кода.

0 голосов
/ 13 декабря 2011

Просто удалите код осмысленным образом (маленькие, атомарные коммиты).

Затем используйте графический интерфейс , чтобы посмотреть историю файла. В Linux я всегда использую QGit (http://sourceforge.net/projects/qgit/), но есть также программы для Windows и Mac, а также онлайн-браузеры (даже Github делает это, но не слишком хорошо).

  • В программе взгляните на дерево файлов;
  • выберите файл, в котором был код, а затем
  • вернитесь в историю этого файла, чтобы увидеть код.

Это то, чем я регулярно занимаюсь. В вашем случае вы можете создать тег , чтобы позже помочь вам найти правильное время в истории.


Возврат кода также прост. Просто скопируйте и вставьте его.

0 голосов
/ 13 декабря 2011

я делаю такие рефакторы по

  1. создание рабочей ветки
  2. удалить одну дублирующую часть кода
  3. 1008 * совершить *
  4. повторяйте в 2. до тех пор, пока не останется больше работы
  5. объединиться с мастером с git merge --no-ff --no-commit Workbranch

Параметр --no-ff заставляет git создать двухстороннее слияние, даже если оно может выполнить ускоренное слияние, --no-commit дает вам возможность изменить сообщение фиксации.

Когда вам нужно текущее состояние, вы можете создать тег для создания символического имени, чтобы вы могли ссылаться на текущее состояние по этому имени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...