Git push изменения, сделанные через фильтр-ветвь - PullRequest
1 голос
/ 31 октября 2011

Я вырезал историю своей ветки master в ветку old_stuff, по совету этого Q & A: Как удалить старую историю из репозитория git? .Чтобы избавить вас от кликов, процесс включает прививку последнего коммита master к корневому коммиту, фактически не давая ему родителя, а затем используя git filter-branch, чтобы сделать это изменение постоянным.Мой локальный репозиторий теперь такой, каким он должен быть, с короткой веткой master и ветвью с длинной историей.

Но если я git clone в репозитории, то коммит, который не должен иметь родителя, имеет то жеродитель, как и раньше.Когда я делаю git push -f origin master, я получаю ветвь master с недавно созданным коммитом во главе, но с родителем предыдущего коммита master.Теперь у меня есть длинная ветвь old_stuff и длинная ветвь master плюс один коммит.Если это уместно, пульт находится на Github.

Как мне сообщить удаленному хранилищу и другим копиям пересмотреть родительский объект для нового коммита?

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

1 Ответ

0 голосов
/ 01 ноября 2011

Как сказать удаленному хранилищу и другим копиям пересмотреть родительский объект для нового коммита?

Ты .... не можешь этого сделать. Если вы меняете родительский коммит, вы меняете этот коммит со всем, что с ним связано (новый sha1 и т. Д.). Возможно, было бы более полезно думать о «родителе» как о «ребенке», с точки зрения того, на что указывают указатели.

Похоже, вы пытаетесь свести свою историю к одному коммиту. Если это так, то оформить заказ (хех) git checkout --orphan. После того, как вы это сделаете, вам нужно навести на него своего мастера (git reset --hard <new orphan branch> на мастере) и принудительно подтолкнуть к началу.

Любую работу, выполненную вашими соотечественниками, необходимо будет воспроизвести поверх этого нового мастера; cherry-pick поможет там.

...