Можно ли заставить git svn dcommit привести к одному svn commit?

StackOverflow https://stackoverflow.com/questions/158514

  •  03-07-2019
  •  | 
  •  

Вопрос

Согласно руководство пользователя, git dcommit “создаст ревизию в SVN для каждой фиксации в git”. Но есть ли способ избежать нескольких ревизий Subversion?То есть заставить git объединить все изменения перед выполнением svn commit?

Это было полезно?

Решение

Если вы работаете над веткой в git, вы можете git-merge --squash, который делает это внутри git.Затем вы могли бы передать этот сжатый коммит в SVN.

Конечно, множество небольших коммитов хороши, так зачем же вам их уничтожать?

Другие советы

Команда git rebase -i могу сделать это и многое другое.Эта команда чрезвычайно мощная, поэтому с ней приятно подружиться.

Синтаксис таков: git rebase -i <commit ID>.Откроется ваш текстовый редактор с опциями (и инструкциями) для изменения всех коммитов вплоть до (не включая) указанного идентификатора.

Например, чтобы изменить предыдущие 5 коммитов, вы можете сделать это:

git rebase -i HEAD~5

Или, если ваша ветвь SVN называется "svn / trunk", то этот синтаксис тоже хорош:

git rebase -i svn/trunk

Затем появится окно текстового редактора.Чтобы раздавить все, измените первое слово в каждой строке после первого с "выбрать" на "раздавить" (если это звучит непонятно - это станет более понятным, когда вы это увидите).Затем сохраните и закройте редактор.Затем у вас будет возможность отредактировать сообщение о фиксации для сжатого коммита.

Среди других вещей, которые вы можете сделать с git rebase -i, переупорядочивают коммиты, сжимают коммиты различными способами и удаляют коммиты.

Я постоянно использую эту команду;это убийственная функция Git.

Райан Томайко написал немного о git rebase -i, что он и сказал:

... [это] немного похоже на git commit – изменить, накачавшись кислотой и держа в руках бензопилу - совершенно безумно и довольно опасно, но способно выявить совершенно новые состояния ума.Здесь вы можете редактировать, сквошировать, изменять порядок, разделять и комментировать существующие коммиты таким образом, чтобы это было проще и интуитивно понятнее, чем должно быть.

У меня есть склонность часто совершать коммиты в git, но не обязательно хочу dcommit каждый привязываюсь к svn, и сворачивание всей моей работы имеет столь же мало смысла.Сейчас я пытаюсь изменить порядок и объединить некоторые из них в более логичные блоки фиксации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top