Мы используем git-репозиторий для хранения нашего проекта. У нас есть наши филиалы, отходящие от первоначальной ветви. Но теперь мы хотим создать небольшой новый проект для отслеживания некоторой документации. Для этого мы хотели бы создать новую пустую ветку, чтобы начать хранить наши файлы, и я бы хотел, чтобы другие пользователи сети клонировали эту ветку.
Как мы можем сделать это?
Я пробовал некоторые вещи, но они не работали.
$ mkdir proj_doc; cd proj_doc
$ git init
$ git add .
$ git commit -m 'first commit'
$ git br proj_doc
$ git co proj_doc
$ git br -d master
$ git push origin proj_doc
Кажется, что ветка работает нормально, но когда я делаю выборку или извлечение, она загружает информацию из других веток, а затем я также получаю дополнительные файлы из других проектов. Какое лучшее решение?
git
branch
git-branch
fazineroso
источник
источник
submodule
в оригинальном проекте, например,docs/
указав на этот другой репо. Или, если вы хотите объединить код позже, добавьте его как удаленный..gitignore
файлы, а также постоянно переключаться между двумя корнями (ветвями). Так что я также за новый подход к репо, в новой папке, с теми же пультами и перемещением в другую ветку.Ответы:
Вы можете создать ветку как сирота:
Это создаст новую ветку без родителей. Затем вы можете очистить рабочий каталог с помощью:
и добавьте файлы документации, зафиксируйте их и отправьте в github.
Функция извлечения или извлечения всегда обновляет локальную информацию обо всех удаленных ветвях. Если вы хотите получить / извлечь информацию только для одной удаленной ветви, вам нужно указать ее.
источник
git checkout --orphan <branch>
; Я не вижу в списке <branch> вgit branch
.git checkout --orphan
можно использоватьgit reset --hard
для удаления оставшихся файлов.git checkout --orphan <branch>
заключается в том, что у нее еще нет коммитов. После первого коммитаgit branch
печатается новая ветка.Правильный ответ - создать сиротскую ветвь. Я объясняю, как это сделать, подробно в моем блоге. (Архивная ссылка)
источник
Создайте пустую новую ветку вот так:
Если ваши файлы proj-doc уже находятся в коммите в одном подкаталоге, вы можете создать новую ветку следующим образом:
который может быть более удобным , чем
git branch --orphan
если бы оставить вас с большим количествомgit rm
иgit mv
ING делать.Пытаться
и посмотрим, поможет ли это с вашей проблемой извлечения слишком много. Также, если вы действительно хотите получить только одну ветку, лучше всего указать ее в командной строке.
источник
git checkout --orphan new-branch; git reset --hard
xargs
?Если ваша версия git не имеет опции --orphan, этот метод следует использовать:
После некоторой работы:
источник
git clean
можете удалять файлы, которые вы не хотите удалять!git clean -ndx
Сначала запустите, чтобы увидеть, какие файлы будут удалены, прежде чем запускать его по-настоящему с-f
опцией.Допустим, у вас есть
master
ветка с файлами / каталогами:Шаг за шагом, как сделать пустую ветку:
git checkout —orphan new_branch_name
ls -la |awk '{print $9}' |grep -v git |xargs -I _ rm -rf ./_
git rm -rf .
touch new_file
git add new_file
git commit -m 'added first file in the new branch'
git push origin new_branch_name
На шаге 2 мы просто удаляем все файлы локально, чтобы избежать путаницы с файлами в вашей новой ветке и теми, которые вы храните в
master
ветке. Затем мы отсоединяем все эти файлы в шаге 3. Наконец, шаг 4 и после работают с нашей новой пустой веткой.Как только вы закончите, вы можете легко переключаться между ветками:
источник
На основании этого ответа от Hiery Nomus .
Вы можете создать ветку как сирота:
Это создаст новую ветку без родителей. Затем вы можете очистить рабочий каталог с помощью:
И тогда вы просто фиксируете ветку с пустым коммитом и затем нажимаете
источник
Проверьте эту документацию , она имеет четкую информацию о
источник
я нашел эту помощь:
источник