問題
4月份換了一份工作,新工作是使用golang開發。當我在代碼倉庫中fork了一份代碼準備在自己的repo中開發時,發現golang的fork的問題。
源repo:example.com/group/tool.git
fork后: example.com/my/tool.git
于是我使用 go get example.com/my/tool
來下載我的repo準備工作時發現,GOPATH
下面依然有group/tool
。原因當然是代碼中import包的時候都是這么使用的:
import "example/group/tool/module"
于是我如果要正常運行的話就得把上面改成:
import "example/my/tool/module"
然后開發完做pull request前又得改回來。這顯然不是正確的工作方式。
解決
有這個問題之后上網搜了一下,顯然不是只有我一個人有這個問題。這篇文章這種情況應該怎么做,簡單總結一下。
1. fork repo
先fork,得到一個自己的repo : example.com/my/tool.git
2. 下載源repo 代碼
go get example.com/group/tool"
這時候你的GOPATH
中已經把所有的代碼和依賴都下載下來了。
3. 添加remote
進入項目的目錄中,為git repo添加remote
cd $GOPATH/src/example.com/group/tool
git remote add fork example.com/my/tool.git
4. push
在前面步驟做完之后,就可以進行代碼修改了,修改之后按照下面的方式push:
git push fork