Добавление проекта с версиями вручную в репозиторий git

еще до того, как я услышал о чудесах управления версиями, я держал проекты в папках, таких как" project X 1.0"," project x 1.1"," project x 1.2 " и т. д. В этом подходе много избыточности, поэтому я хотел бы использовать git для консолидации и управления версиями системы в будущем.

каков наилучший способ сделать это? Я предполагаю, что я должен начать с запуска git init на "project X 1.0", но тогда как я могу объединить другие папки в проект как новые фиксации? (Я все еще очень новое в git)

7
задан amdfan
22.01.2023 5:20 Количество просмотров материала 3125
Распечатать страницу

3 ответа

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

затем скопируйте все файлы из вашей первой ревизии в этот новый каталог,git add и git commit. Это даст вам ваш первый реальный совершить.

затем скопируйте / перепишите все файлы с содержимым вашей второй редакции. git add,git commit.

вы можете повторять это столько, сколько вы хотите. Самый первый шаг совсем не обязательно, вы можете сделать это в каталоге по первой ревизии. Но делать это в новом каталоге позволяет не изменять ничего вообще в резервных копиях, так что вы можете начать с нуля снова, если вы хотите улучшить / настроить процесс, не рискуя потерять что-либо в старых каталогах.

4
отвечен Mat 2023-01-23 13:08

есть хорошая книга для git под названием Pro Git. Есть раздел о том, как перейти от пользовательской структуры, а также. (См. Раздел Пользовательский Импортер). Это немного сложнее, но если у вас много истории, то это будет лучший способ.

другой способ сделать:

# initialize a new repository
git init .
touch .gitignore
git add .
git commit -m "initial commit"

# copy all the files to working directory
cp -R backup_v01/* .
# stage all the files
git add .
# make the first commit
git commit -m "v0.1 from backup"

# remove all files
git rm -r *
# copy all the files to working directory
cp -R backup_v02/* .
git add .
git commit -m "v0.2 from backup"

Это можно оптимизировать, но этот скрипт легко понять. Перед обновлением содержимого необходимо удалить все старые файлы из репозитория, так как в противном случае у некоторых старых удаленных файлов висит вокруг.

конечно, все это можно превратить в сценарий (repo.sh):

#!/bin/bash
REPODIR=

# initialize a new repository
git init $REPODIR

cd $REPODIR
touch .gitignore
git add .
git commit -m "initial commit"

while read DIR
do
  # remove all files
  git rm -r *
  # copy all the files to working directory
  cd ..
  cp -R $DIR/* $REPODIR/.
  # go back to repo dir
  cd $REPODIR
  # stage all the files
  git add .
  # make the first commit
  git commit -m "$DIR from backup"
done

переключение папок необходимо для работы с относительными путями.

вы используете его, отправив все пути к папке скрипта и указав каталог репозитория (он не должен существовать):

# let's say all the backups are in this folder
# and there are no other folders

# test whether everything is in correct order
ls -d */ | sort

# verify that there is no repository directory
rm -rf REPO_DIR

# pipe the folder listing to the script
ls -d */ | sort | repo.sh REPO_DIR
3
отвечен Egon 2023-01-23 15:25

другой способ был бы, после initing и фиксации в вашей первой версии проекта,движение на .git каталог репозитория из копии 1.0 в копию 1.1, добавьте эти изменения (используйте git add --all, чтобы заметить удаления) и зафиксировать, затем переместите его в 1.2, и так далее.

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

2
отвечен Kevin Reid 2023-01-23 17:42

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх