278


githubでgo言語で書かれたリポジトリをforkして作業するときに、import文がずれるのはどうやって解消するのがいいのでしょうか？

例えば、hogeさんのfoobarリポジトリからforkしてくると、

[code]

    import "github.com/hoge/foobar/client"
    
[/code]

のようにインポートされています。

hogeの部分を自分のユーザ名に書き換えても、pull requestを送るときに戻すのがめんどくさいですし、そもそもちゃんと管理できません。。。


CC BY-SA 3.0
2014-12-02T23:51:30.763
277
2014-12-05T05:23:44.787
181
question
git go github
githubでforkしたgo言語のリポジトリのimport文がずれる


こちらの方法が良いと思います:  
[GithubのGo言語プロジェクトにPull Requestを送るときのimport問題 |
SOTA](http://deeeet.com/writing/2014/07/23/golang-pull-request/)


CC BY-SA 3.0
2014-12-02T23:52:36.127
278
2014-12-02T23:52:36.127
55
277
answer


手順を書いときます。

  1. オリジナルをGOPATH上の正しい場所に clone する   
`git clone git@github.com:wizard/awesome.git`

  2. github で fork する
  3. オリジナルと同じワーキングディレクトリの remote に fork を追加する  
`git remote add mine git@github.com:myname/awesome.git`

  4. 作業ブランチを作って修正を行う `git checkout -b newfeature`
  5. 自分のレポジトリに push する `git push -u mine newfeature`
  6. pull request を作る

GOPATH上でのディレクトリレイアウトを、オリジナルレポジトリに合わせしまうのです。


CC BY-SA 3.0
2014-12-03T00:18:48.707
280
2014-12-05T05:23:44.787
2014-12-05T05:23:44.787
208
208
277
answer


対象のリポジトリが対象ユーザの import 構成になっているので、自分のリポジトリ内で作業するともちろん正しくビルド出来ません。 PR を送る目的ならば
import 等は書き換えず対象ユーザのリポジトリ内で作業すべきかと思います。

例えば hoge さんが foo さんのリポジトリ bar に対して PR を送る場合、GOPATH 内で foo/bar を git clone します。

[code]

    mkdir -p /path/to/GOPATH/src/github.com/foo
    cd /path/to/GOPATH/src/github.com/foo
    git clone https://github.com/foo/bar
    cd bar
    
[/code]

PR 用のブランチを作成

[code]

    git checkout -b feature-branch
    vim kanari-sugoi.go
    git commit -a -m "Super awesome changes"
    
[/code]

hub コマンド等で fork

[code]

    hub fork
    git push hoge feature-branch
    
[/code]

自分のリポジトリに foo/bar を push します。

後は github.com/foo/bar を見に行けば pull-request ボタンが押せる様になっているはずです。


CC BY-SA 3.0
2014-12-03T01:49:22.943
285
2014-12-03T01:49:22.943
440
277
answer