Это немного странный вопрос, учитывая, как команда, к которой я присоединился, использует SVN. По сути, репозиторий svn следует стандартной компоновке, но ствол на самом деле не изменялся в течение 1,5 лет или около того, и работа, как правило, происходит только в ветвях и ветвях ветвей. Таким образом, я использовал git-svn для клонирования из ветки, которая представляет активную ветку для нашего следующего выпуска, и это то, что мастер отслеживает в моем локальном репозитории git. С этого момента давайте назовем эту ветку в svn 'release'. Использование git-svn для этой цели - это просто зануда.
Теперь кто-то создал ветку функции на основе ' release ', которую я собираюсь назвать' функцией ', которую я хотел бы передать в свою локальную ветвь, а также зафиксировать. Конечно, я могу просто клонировать эту ветвь в другой каталог / репозиторий git локально, но мне бы очень хотелось, чтобы `` функция '' отображалась в локальной ветке в моем локальном репозитории git, чтобы выполнить слияние между эти двое настолько прямолинейны, насколько это возможно. Я видел другие сообщения stackoverflow.com, показывающие, как это работает, если вы использовали git svn init
с - stdlayout
, но я не делал этого в моем случае для причины, указанные выше.
Вот мой .git / config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[svn-remote "svn"]
url = https://our.svn.server/svn/root/branches/release
fetch = :refs/remotes/git-svn
Я предполагаю, что в моем разделе [svn-remote]
мне нужно ветки = $ something
но я не Я не знаю, что это за $ something в данном случае, и какое заклинание git checkout и другие команды мне понадобятся после того, как я внесу это изменение в .git / config.
Есть предложения?
Изменить - Следующие действия работают:
Итак, я начал с нуля и выполнил следующую команду клонирования:
git svn clone https: //my.svn.server/svn/root -T branch / branch_I_want_as_master -b branch
Что, примерно через 16 часов, наконец, разобрал все, что нужно. Результирующий .git / config выглядит так:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[svn-remote "svn"]
url = https://my.svn.server/svn/root
fetch = branches/branch_I_want_as_master:refs/remotes/trunk
branches = branches/*:refs/remotes/*
Итак, я знаю, что это работает - я могу git checkout -b name-of-a-branch name-of-a-branch
, и это дает мне удаленная ветка в моем локальном репозитории git. Предыдущие ответы не были точными ответами, которые мне были нужны, но я проголосовал за них, поскольку они были полезны.
Здесь я Я приму ответ, который просто объясняет, почему это работает, и, возможно, полезную ссылку, в которой рассказывается, как правильно делать что-то с .git / config.