Переадресация ветки git-svn master обратно на транк - PullRequest
9 голосов
/ 13 февраля 2012

Я не уверен, как я попал в это состояние, но моя ветка master в моем локальном репозитории git-svn, кажется, указывает на удаленную ветку UAT.

git status
# On branch master nothing to commit (working directory clean)
git svn dcommit Committing to https://svn...com/MyRepo/branches/UAT ...

как мне это исправить?

Ответы [ 2 ]

5 голосов
/ 17 февраля 2012

I думаю, вы пытаетесь исправить то, что ваша локальная "главная" ветвь основана на удаленной ветви UAC, а не на удаленной магистрали. Если вы счастливы потерять свои коммиты, вы можете просто запустить нижеприведенное, которое извлечет ствол, а затем переместит основную ветку к вашей текущей точке.

git checkout remotes/trunk
git checkout -B master

Если вы не хотите терять свои коммиты, git rebase ваш друг. Используйте ниже:

git rebase $(git merge-base remotes/UAC master) master --onto remotes/trunk

Это работает с общим родителем ветви UAC и локальной ветки master, делает все коммиты оттуда до конца ветки master в магистрали, а затем перемещает ветку master, чтобы указывать там.

0 голосов
/ 17 февраля 2012

Один из способов - переименовать текущую основную ветвь и извлечь источник / ствол как (новую) основную ветвь.

git branch -m master uat
git checkout origin/trunk master

Если вам нужно, теперь вы можете сделать коммиты cherry-pic из ветки uac в master (я бы использовал gitk --all, чтобы помочь мне в этом)

Немного более сложная проблема: Переименовать основную ветку для локальных и удаленных репозиториев Git

...