Один из способов ее решения - предложенный Иваном Рейвом и http://blog.campoy.cat/2014/03/github-and-go-forking-pull-requests-and.html способ разветвления.
Другой - обойти поведение golang . Когда вы go get
, golang размещает ваши каталоги под тем же именем, что и в URI репозитория, и здесь начинаются проблемы.
Если вместо этого вы создадите свой собственный git clone
, вы можете клонировать свой репозиторий в свою файловую систему по пути, названному в честь исходного репозитория.
Предполагая, что исходный репозиторий есть github.com/awsome-org/tool
и вы его разместили github.com/awesome-you/tool
, вы можете:
cd $GOPATH
mkdir -p {src,bin,pkg}
mkdir -p src/github.com/awesome-org/
cd src/github.com/awesome-org/
git clone git@github.com:awesome-you/tool.git # OR: git clone https://github.com/awesome-you/tool.git
cd tool/
go get ./...
golang совершенно счастлив продолжить работу с этим репозиторием и на самом деле не заботится о том, чтобы какой-то верхний каталог имел имя, awesome-org
а git remote awesome-you
. Весь импорт для awesome-org
возобновляется через только что созданный каталог, который является вашим локальным рабочим набором.
Более подробно см. Мое сообщение в блоге: Разветвление репозиториев Golang на GitHub и управление путем импорта
изменить : фиксированный путь к каталогу