2016-10-22 2 views
1

Из нескольких раз, когда я раздавил Git, требуется ручная работа, чтобы выбрать предыдущие коммиты, которые я хотел раздавить.Сценарий Git для переустановки и сквоша временных коммитов

Есть ли способ сделать это автоматически - моя цель - сквоить все предыдущие коммиты, которые еще не были перенесены в конкретную удаленную ветвь.

Чтобы уточнить, скажем, у меня есть 1 локальная ветвь с именем «dev» и 2 пультов, открытых и закрытых. Я фиксирую и нажимаю все, что хочу, на частный пульт, на ветку с именем «dev», назовем это private/dev. Но на публичном удалении я хочу держать вещи в чистоте и порядке, и чтобы одна стандартная ветвь называлась «мастер», назовем ее public/master. Так что, как я уже сказал, для всех коммитов, которые еще не дошли до публичной дистанционной мастер-ветви, я хочу выкачать их в один большой фиксатор, а push to public/master

Как я могу это достичь? Кажется сложным.

+0

Отъезд https://robots.thoughtbot.com/autosquashing-git-commits – Yawar

ответ

3

Вы просто создать временную ветвь через public/masterpublic будучи имя вашего публичного пульта дистанционного управления, и master - например - быть местом филиал)

И вы используете merge --squash (см «In git, what is the difference between merge --squash and rebase?»)

git checkout -b temp public/master 
git merge --squash dev 
# since merge --squash does not produce a commit: 
git commit -m "squash dev" 
git push public temp:master 
git checkout dev 
git branch -d temp 

О синтаксисе двоеточия, см. «git push branch to a new repo with a different name» и examples section of git push.
Он позволяет перенаправить локальную ветвь на удаленный с другим именем.

+0

Надеюсь, это сработает. можете ли вы рассказать о том, что именно происходит в каждом шаге/команде? Не уверен, что я действительно следую за –

+0

, например, можете ли вы дать результат слияния сообщение фиксации, которое будет использоваться при просмотре последней версии public/master? –

+0

также что такое «git push public tmp: master» - что означает синтаксис двоеточия? –

Смежные вопросы