#git #github #github-desktop
#git #github #github-рабочий стол
Вопрос:
У меня есть репозиторий, который был частным, и я хотел сделать некоторые файлы общедоступными. К сожалению, я не нашел хорошего способа сделать это, поэтому я переименовал старое хранилище из NAME в NAME_dev. Затем я скопировал файлы из репозитория разработчиков в новый репозиторий с именем NAME, который был общедоступным с самого начала.
Вот моя проблема: Github Desktop, похоже, смущен этим новым общедоступным репозиторием. Когда я клонирую общедоступный репозиторий с ним, он помещает его в нужный каталог (user / GitHub / NAME), но он клонирует содержимое NAME_dev .
Я повторно выполнил начальный процесс, на этот раз инициализировав новое хранилище с именем GitHub Desktop под названием NAME, и вручную выбрал каждый файл, в который я хотел войти, без копирования целых папок. Та же проблема. Я удалил всю локальную папку Github, переделал все, та же проблема. Я создал новый репозиторий NAMEOS, поместил все, затем переименовал его обратно в NAME, та же проблема. Я попытался назвать версию разработчика NAMEprivate на случай, если _dev вызывал проблемы, та же проблема. Я уверен, что я что-то сделал неправильно, но, похоже, я не могу найти, как это исправить. Возможно, какой-то скрытый файл в частной версии все еще имеет первое имя, которое он получил.
В любом случае, мне нужно иметь общедоступное хранилище с именем NAME, в котором доступны только определенные файлы.
Есть мысли?
Заранее большое спасибо!
Ответ №1:
Если вы отправляете в репозиторий, вы отправляете все версии каждого файла (все коммиты) этой ветви в этот репозиторий.
Если вы удалите файл из репозитория, он все равно будет виден.
Git поддерживает несколько удаленных репозиториев, но если вы перейдете к одному, вы опубликуете всю свою работу в своей ветке в этом репозитории.
Если вы хотите иметь несколько репозиториев, но скрыть некоторые файлы в одном из них, вы можете сделать это, просто создав разные ветви, но в тот момент, когда вы объединитесь из «частной» ветви в «общедоступную» ветвь и нажмете на нее, вы также опубликуете все состояния «частной» ветви.
Вы также можете использовать разные локальные репозитории, и каждый раз, когда вы регистрируетесь в репозитории, который ссылается на общедоступный удаленный сервер, вы копируете файлы перед фиксацией.
Если вам больше не нужен частный репозиторий, вы можете просто создать .gitignore
файл, в котором указано, какие файлы не зафиксированы. Однако вам необходимо либо удалить старый локальный репозиторий ( .git
каталог), либо удалить эти разумные файлы из истории, используя команду типа git filter-branch
.
Я не совсем уверен, что вы имеете в виду, когда путаете GitHub Desktop, но каталог, в который вы клонируете, может просто уже существовать с содержимым вашего dev-репозитория, или «общедоступный» репозиторий имеет содержимое tge dev-репозитория.
Комментарии:
1. Привет, dan1st, спасибо за ответ! Я ценю способы сделать некоторые вещи общедоступными, а некоторые — частными, но, похоже, самый простой (на удивление) — это иметь одно публичное репо и одно частное репо. Проблема, по-видимому, заключается в том факте, что частное репо раньше имело название того, каким я хочу видеть публичное репо. Это моя проблема. Я несколько раз очищал целевой каталог, и это не сильно меняется. Это должно быть что-то связанное с тем, как git запоминает, какие файлы связаны с репозиторием.
2. Используете ли вы тот же локальный репозиторий? (Тот же каталог)
3. Мой план состоял в том, чтобы иметь два разных локальных репозитория в двух разных каталогах. Т. е. Github /NAME / и Github /NAMEprivate. Я переименовал ветку разработки в NAMEprivate, которая отлично работала. Но когда я клонирую NAME с рабочего стола github, он автоматически вызывает его Github / NAME, но заполняет его содержимым NAMEprivate.
4. Вы указали правильный URL? В любом случае, вы можете клонировать его с помощью
git clone <repository url>
из командной строки, это более надежно.5. Вау, выполнение этого из командной строки наполняет его правильным контентом! Спасибо! Как ни странно, Github Desktop по-прежнему ссылается на него как NAMEprivate. В нем указан неправильный URL, неправильный список пользователей / имен репо, но правильный каталог, и он не распознает никаких различий в файлах. У вас есть какие-либо идеи, как исправить эту часть?