Не вносить все изменения, сделанные в SVN с помощью GIT-SVN - PullRequest
0 голосов
/ 11 апреля 2019

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

Сегодня я решил три проблемы (и поэтому сделал три коммита) и оставил код в процессе решения еще одного.Я хочу нажать (dcommit) все коммиты, которые я сделал локально.

Дело в том, что у меня все еще есть файлы, которые не были зафиксированы, и, когда я пытаюсь dcommit I get ", требуется обновить"для каждого из них.

Как я могу git svn dcommit только то, что я сделал git add в моем локальном репо?Я хочу сделать именно то, что делает git push, и не трогать все мои неверсированные файлы / разности.

Я знаю, что это, вероятно, халатность или что-то в этом роде, но мой рабочий процесс идет.

1 Ответ

2 голосов
/ 11 апреля 2019

Прежде всего, я думаю, что вам нужно запустить git svn fetch, чтобы увидеть, что другие разработчики делают в ветке svn, на которую вы пытаетесь перейти. Затем, чтобы иметь возможность выполнять реальную работу по продвижению ваших изменений и прочего, вам придется прекратить то, что вы делаете, и очистить рабочее дерево. Для этого запустите git stash save. Тогда вы сможете свободно передвигаться. Теперь вы должны перебазировать поверх обновленной подсказки ветки svn, и теперь вы сможете запустить git svn dcommit, чтобы войти в svn. Тогда вы можете подумать о том, чтобы всплыло то, что вы спрятали, чтобы вы могли продолжать работать git stash pop.

Редактировать:

Поскольку git 2.16 git stash save устарел в пользу git stash push. Он отличается от «stash push» тем, что не может принимать pathspecs, и любые неопциональные аргументы формируют сообщение.

...