Замініть майстра на відділення


1

Я зробив кілька комітетів. Тоді мені довелося повернутися до комітету посередині. Внесли зміни там і створили нове відділення. Тепер, що я хочу зробити, це пропустити (видалити, видалити) всі інші коміти та використовувати гілку як основну версію. Але не можу зрозуміти, як це зробити.

Ось кілька пояснень ситуації:

commit1 (latest)
commit2
commit3 (head pointing here)
other commits...

Тоді commit3я вніс зміни та створив нову гілку, щоб їх підштовхнути.

Тепер я хотів би зробити версію гілки як основну, видаливши commit2і commit1.


Ви хочете зробити свою нову гілку за замовчуванням або змінити головну, щоб вона мала точно такі ж зобов'язання, які має ваша нова гілка в даний час?
8bittree

@ 8bittree Я хочу, щоб майстер мав стан відділення (другий сценарій, який описано)
yerzhik

Крім того, чи ви натискаєте коміти 1 і 2 або вони лише локальні?
8bittree

Вже штовхнув. Все штовхається
yerzhik

Відповіді:


2

Після того, як ви натиснули, найімовірніший варіант розірвання речі, ймовірно, є git revert:

git checkout master
git revert commit1 commit2
git merge new-branch
git push

Зауважте, що це призведе до того, що у мастера є абсолютно ті самі файли, що й у новій гілці, але commit1 та commit2 все ще будуть в історії майстра, разом з двома додатковими комісіями, що повертають їх зміни.


НЕ РЕКОМЕНДОВАНО

Якщо ви дійсно дуже хочете фактично видалити комісії, які ви вже відштовхували від майстра, спочатку повідомте всіх своїх товаришів по команді, що ви, ймовірно, будете ламати речі, а потім використовуйте git reset:

git checkout master
git reset --hard commit3
git merge new-branch
git push -f

--hardвидалить з вашої файлової системи всі зміни, внесені commit1 та commit2. Ви можете використовувати --softдля збереження цих змін у файловій системі, одночасно видаляючи ці коміти.

Можливо, ви захочете вказати своїм товаришам по команді на документацію для відновлення з висхідної бази даних (git reset points до цього розділу, коли йдеться про використання reset --hardвже натиснутих комітетів).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.