Я помещаю вещи в свой репозиторий Git, которые у меня не должно быть - PullRequest
2 голосов
/ 08 сентября 2011

Я новый пользователь в git, на самом деле новый пользователь для отслеживания контента / контроля исходного кода. Я начал использовать git около 6 месяцев назад, и мне это очень понравилось.

Глупо я слежу за своими завершенными проектами, включая каталоги lib, в которые входят все необходимые библиотеки каждого проекта. Некоторые из них - библиотеки, которые я не могу распространять. Я намерен поделиться своим git-репо с коллегами, и некоторые мои проекты могут в какой-то момент стать FOSS. Для меня важно иметь возможность делиться своим репозиторием.

Как выйти из этого беспорядка, не потеряв свою историю?

Кроме того, это раздражает, потому что, как вы знаете, некоторые версии программного обеспечения требуют определенных версий библиотек, или они не будут компилироваться. Если я не могу поместить библиотеку в репозиторий git, это означает, что мне, возможно, придется заняться ручным манипулированием, чтобы снова заставить работать конкретную версию моих программ. Другими словами, это огромные хлопоты.

Я что-то недопонимаю об использовании git? Это похоже на гигантскую проблему.

РЕДАКТИРОВАТЬ: Я легко могу представить сценарии, когда крупные проекты загрязняются коммитами несвободных материалов. И я могу себе представить, что эта проблема долгое время оставалась незамеченной, так что это похоже на Ахиллесову пяту для отслеживания распределенного контента. Я также думаю, что нужно вручную находить и использовать, возможно, десятки библиотек каждый раз, когда вы хотите исследовать некоторые небольшие изменения, чтобы быть абсолютно недостижимым. Таким образом, на практике git можно использовать только в совершенно бесплатных проектах. Я не прав?

1 Ответ

2 голосов
/ 08 сентября 2011

Во-первых, отслеживание зависимостей.Если библиотеки с открытым исходным кодом, включение их в качестве подмодулей может помочь в их обновлении.Однако, поскольку это не то, что звучит так, как будто они вам нужны.Если их можно получить легко, бесплатно, но не открыто, я использовал Maven в прошлом с довольно хорошим успехом.http://maven.apache.org/ Я обнаружил, что в Windows это работает не особенно хорошо.

Для вашей проблемы с git попробуйте следующее:

  1. Извлечь коммит, где библиотекибыли добавлены.
  2. Создайте ветку из этого коммита, т.е. whoops.
  3. git rm -rf libs
  4. Добавление библиотек в .gitignore
  5. git cherry-выберите ..most_recent_commit
  6. Если сейчас это версия проекта, которую вы хотите:
    1. Yay!Продолжить.
    2. Стреляй.,,хорошо, что вы находитесь на ветке!
  7. Мастер оформления заказа
  8. сброс настроек --hard commit_from_other_branch
  9. Commit
  10. Force aтолкни, старый мастер осиротит.git push -f

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

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