Отправка одного чистого коммита / ветки на удаленный - PullRequest
1 голос
/ 04 мая 2020

У меня есть репозиторий «А» с тонной историей, несколькими ветками и т. Д. c. Я хочу взять одну чистую рабочую фиксацию и использовать ее в качестве отправной точки для нового удаленного «B», чтобы на удаленном «B» была видна только одна фиксация, и оттуда я в идеале мог бы pu sh для "B" и "A" или, что еще лучше, чтобы эта ветвь "B" отслеживала начало "A"

Ответы [ 2 ]

1 голос
/ 05 мая 2020

В общем, когда вы создаете новую ветку от ветки «master», вы наследуете ее историю фиксации. Исключением является ветвь orphan (или отключенная). Сиротская ветка не имеет отношения родитель-потомок к коммитам основной ветки. У большинства коммитов есть одна родительская фиксация, одно очевидное исключение - root коммитов, у которых нет родительских коммитов. Создание orphan branch сохранит рабочее дерево ветви, на которой оно основано, но без фиксации предка.

# создать новую ветку b и переключиться на нее: git checkout --orphan b

# создать файл README.md : touch README.md;

# добавить файл README.md в git: git add README.md;

# make первая фиксация в эту ветку: git commit -m 'orphan branch initial commit';

# pu sh branch b и установить восходящую ветвь на ветку a : git push --set-upstream a b;


Ветви восходящего потока определяют ветвь, отслеживаемую в удаленном репозитории вашей локальной удаленной веткой (также называемой ветвью удаленного отслеживания). Чтобы проверить ветки трекинга, набрав git branch -vv

1 голос
/ 04 мая 2020

Проверьте фиксацию, в которой код находится в нужном вам состоянии, и создайте сиротскую ветку, которая приведет к фиксации без родителей, когда вы ее зафиксируете:

git checkout --orphan clean-branch
git commit -a
git push B clean-branch

Затем снова проверьте обычную ветку и продолжайте там работать. Всякий раз, когда вы захотите выполнить синхронизацию снова, выполните:

git reset --soft clean-branch
git commit
git push B clean-branch

Мягкий сброс сохраняет ваш рабочий каталог, но делает так, чтобы следующие коммиты были в указанной ветке.

(Я делаю нет заявления о том, является ли этот рабочий процесс хорошей идеей.)

...