Используя git-svn, если у меня есть несколько коммитов не в SVN, как я могу отправить только выбранные коммиты в SVN? - PullRequest
1 голос
/ 12 августа 2010

Допустим, в моем локальном git-репозитории есть несколько коммитов, которые не были отправлены в svn. Например, эти четыре коммита на мастере.

A <-- B <-- C <-- D

A - самый старый коммит не в svn, а D - самый новый коммит.

Как мне использовать git svn dcommit только для передачи A и B в SVN, но хранить C и D только в моем локальном хранилище git?

Приветствуются альтернативные рабочие процессы.

Ответы [ 2 ]

3 голосов
/ 12 августа 2010

dcommit принимает необязательный аргумент, определяющий, что следует рассматривать как HEAD во время коммитов, поэтому любая из этих работ (где B является ссылкой на этот конкретный коммит, либо по имени, если он есть, либо по хешу):

git svn dcommit B
git svn dcommit HEAD~2
1 голос
/ 12 августа 2010

Я думал об этом, и у меня есть потенциальное решение моей собственной проблемы.

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

Когда задание выполнено, я запускаю git svn rebase. Затем я перебрасываю свою локальную ветку поверх master, пересылаю master вперед в главу этой ветви, затем dcommit.

Моя проблема заключалась в том, что коммиты A и B были частью одной задачи, а C и D были другой независимой задачей. C и D принадлежат разным ветвям и никогда не должны были фиксироваться поверх A и B.

Ответы на этот вопрос ...

git-svn dcommiting git commit

Похоже, что только фиксация A и B. на самом деле невозможна.

...