Jednym ze sposobów rozwiązania tego problemu jest metoda zaproponowana przez Ivana Rave'a i http://blog.campoy.cat/2014/03/github-and-go-forking-pull-requests-and.html - sposób rozwidlenia.
Innym jest obejście zachowania golang . Kiedy ty go get
, golang układa twoje katalogi pod taką samą nazwą jak w identyfikatorze URI repozytorium, i tutaj zaczyna się problem.
Jeśli zamiast tego wydasz własne git clone
, możesz sklonować swoje repozytorium do swojego systemu plików na ścieżce nazwanej tak, jak oryginalne repozytorium.
Zakładając, że oryginalne repozytorium jest dostępne github.com/awsome-org/tool
i rozwidlasz je github.com/awesome-you/tool
, możesz:
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 jest całkowicie zadowolony z kontynuowania tego repozytorium i właściwie nie obchodzi go, że jakiś górny katalog ma taką nazwę, awesome-org
podczas gdy zdalny git ma taką nazwę awesome-you
. Cały import dlaawesome-org
pliki są ponownie wyszukiwane za pośrednictwem właśnie utworzonego katalogu, który jest lokalnym zestawem roboczym.
Szerzej , zobacz mój wpis na blogu: Rozwidlenie repozytoriów Golang na GitHub i zarządzanie ścieżką importu
edit : stała ścieżka katalogu