Можно ли вернуться назад и создать историю проекта Git / GitHub задним числом ...? - PullRequest
0 голосов
/ 30 октября 2018

Я пользуюсь только GitHub (или Git вообще) в течение последних 2 лет. Но сейчас я хочу создать репозиторий GitHub, а затем, после этого, каким-то образом вставить исторические версии кода в его историю. Это вообще возможно?

История состоит в том, что у меня есть служебный класс C ++, которым я делюсь онлайн более 20 лет. Задолго до того, как GitHub появился в 1990-х годах, я разместил его на таких сайтах, как CodeGuru и CodeProject. Никогда не убирал это. Но люди все еще пишут мне об этом по электронной почте, поэтому я решил, что я должен поместить это в GitHub и позволить им редактировать его.

Но моя «история» этого кода в основном сохраняется в ассортименте многих статических версий, которые я сохранил в одной папке по дате. Я бы предпочел, если это возможно, разместить его там с полной историей. Но выполнение этого вручную заняло бы некоторое время, поэтому, если бы я мог сначала поместить текущую версию, а затем вставить историю, это было бы идеально.

Я не ожидаю, что это возможно, но подумал, я бы спросил

В любом случае это можно сделать?

1 Ответ

0 голосов
/ 30 октября 2018

Git позволяет вам перебазировать вещи (https://git -scm.com / book / en / v2 / Git-Branching-Rebasing ), это означает, что вы можете переписать историю ваших коммитов (https://git -scm.com / book / ru / v2 / Git-Tools-Rewriting-History ), вы можете даже изменить порядок коммитов, но эти операции ДОЛЖНЫ выполняться, ДО того как вы опубликуете свой проект , Таким образом, кажется невозможным добиться того, чего вы хотите, то есть опубликовать немного истории вашего проекта, а затем время от времени добавлять более старые версии.

Альтернатива чисто ручному процессу: если все ваши версии хранятся в коллекции папок, вы можете написать скрипт для создания из них истории git. По сути, это будет что-то вроде:

  1. определить рабочий каталог и инициализировать на нем git-репо
  2. цикл по папкам, отсортированный по дате (ГГГГММДД), например

    2,1. очистить рабочий каталог, кроме его подпапки .git

    2,2. скопировать содержимое текущей папки в рабочий каталог и зафиксировать

  3. опубликуйте свой git-проект:)

Надеюсь, это поможет ...

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