неподмодуль подмодуль мерзавца

В этом определенном экземпляре (куда Ваша строка собирается содержать дефисы) я преобразовал бы текст к этой серверной стороне:

<div style="width:150px;">
  <span>12333-</span><span>2333-</span><span>233-</span><span>23339392-</span><span>332332323</span>
</div>
358
задан Quickredfox 18 November 2009 в 13:46
поделиться

2 ответа

  1. git rm --cached the_submodule_path
  2. удалить раздел подмодуля из файла .gitmodules , или, если это единственный подмодуль, удалить файл.
  3. сделать фиксация «удаленный подмодуль xyz»
  4. git add the_submodule_path
  5. еще одна фиксация «добавлена ​​база кода xyz»

Я пока не нашел более простого способа. Вы можете сжать 3-5 в один шаг с помощью git commit -a - вопрос вкуса.

23
ответ дан 23 November 2019 в 00:19
поделиться

Если все, что вам нужно, это поместить код подмодуля в основной репозиторий, вам просто нужно удалить подмодуль и повторно добавить файлы в основное репозиторий:

git rm --cached submodule_path # delete reference to submodule HEAD (no trailing slash)
git rm .gitmodules             # if you have more than one submodules,
                               # you need to edit this file instead of deleting!
rm -rf submodule_path/.git     # make sure you have backup!!
git add submodule_path         # will add files instead of commit reference
git commit -m "remove submodule"

Если вы также хотите чтобы сохранить историю подмодуля, вы можете проделать небольшую уловку: «объединить» подмодуль с основным репозиторием, чтобы результат был таким же, как и раньше, за исключением того, что файлы подмодуля теперь находятся в основном репозитории.

В основном модуле вам нужно будет сделать следующее:

# Fetch the submodule commits into the main repository
git remote add submodule_origin git://url/to/submodule/origin
git fetch submodule_origin

# Start a fake merge (won't change any files, won't commit anything)
git merge -s ours --no-commit submodule_origin/master

# Do the same as in the first solution
git rm --cached submodule_path # delete reference to submodule HEAD
git rm .gitmodules             # if you have more than one submodules,
                               # you need to edit this file instead of deleting!
rm -rf submodule_path/.git     # make sure you have backup!!
git add submodule_path         # will add files instead of commit reference

# Commit and cleanup
git commit -m "removed submodule"
git remote rm submodule_origin

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

В этом втором решении у вас будет большое преимущество, заключающееся в том, что вы по-прежнему можете запускать git blame или git log для файлов, которые изначально находились в подмодулях. Фактически, вы здесь переименовали множество файлов в одном репозитории, и git должен это определить автоматически. Если у вас все еще есть проблемы с git log, попробуйте некоторые параметры (--follow, -M, -C), которые лучше обнаруживают переименование / копирование.

501
ответ дан 23 November 2019 в 00:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: