4394


githubにはwiki機能があり、それをローカル環境で編集する為には  
- githubのサイトで自分のリポジトリからwikiを開き、最初のページを作る  
- それをcloneする

ということはわかったのですが、どの場所にクローンするべきか悩んでいます。  
考えられるのは  
1. リポジトリ内にwikiディレクトリを作り、その中にcloneする  
2. リポジトリとは別の場所で管理する  
という方法なのでしょうが、どっちが正解なのか（使いやすいのか）がよくわかりません。  
1の方法だとwikiディレクトリをgitignoreして別にcommit&pushして使うのでしょうか  
2の方法は無駄にファイルが散らかるような気がするのであまり使いたくありません。

それとも本来のリポジトリをcommit&pushしたらwikiも反映されるような方法があるのでしょうか？


CC BY-SA 3.0
2015-01-11T02:58:25.483
4389
2015-01-11T09:59:20.110
7300
question
github
githubのwikiページをlocalで管理する時のcloneする場所について


GitHubのWikiは通常のリポジトリとは別物扱いになっています。

ですので

>   2. リポジトリとは別の場所で管理する
>

こちらの方が結果管理がラクではあると思います。

もし

>   1. リポジトリ内にwikiディレクトリを作り、その中にcloneする
>

ということでしたら普通に`clone`するのではなく`git
subtree`などを使用すれば一応は管理の一元化が出来るとは思うのですが、個人的には管理が煩雑になると思いますので使っていません。


CC BY-SA 3.0
2015-01-11T04:46:33.937
4393
2015-01-11T09:59:20.110
2015-01-11T09:59:20.110
521
521
4389
answer


同じクローンの中に取り込んでしまうのはどうでしょうか。

[code]

    $ git clone git@github.com:ユーザ名/リポジトリ.git
    $ cd リポジトリ
    $ git remote add wiki git@github.com:ユーザ名/リポジトリ.wiki.git
    $ git fetch wiki
    $ git checkout -b wiki wiki/master
    
[/code]

これでコードリポジトリとwikiリポジトリのコミットが全て手元の.gitフォルダに取り込まれます。

[code]

    $ git checkout wiki
    $ 編集 Home.md
    $ git commit -am "Update Home.md"
    $ git push
    $ git checkout master
    $ 作業
      ：
    
[/code]

このようにwikiブランチとmasterブランチの間を`checkout`で切り替えながら作業します。この方法はローカルの変更が残っていると切り替えができないので、`stash`や捨てコミットなどをしながら使う事になります。

[サブツリーを使うと](http://japan.blogs.atlassian.com/2014/03/alternatives-to-git-
submodule-git-
subtree/)コード側のリポジトリに含めてしまうこともできます。コマンドが長いのでエイリアスやスクリプトが必要になると思います。

[code]

    $ git subtree add --squash --prefix=wiki/ wiki
    $ 編集 wiki/Home.md
    
    # Wikiページの変更をコミット (このコミットはoriginに記録される)
    $ git commit -am "Update wiki/Home.md"
    
    # wikiフォルダ内での作業をwikiリポジトリにpush
    $ git subtree push --prefix=wiki/ wiki master
    
    # wikiリポジトリの変更をwikiフォルダにマージ
    $ git subtree pull --prefix=wiki/ wiki master
    
[/code]

サブツリーはwikiの変更をorigin内にも記録してしまうので、手段と目的が逆転している気もします。

結局、一番楽な方法はwhatsさんのいう`1\. リポジトリ内にwikiディレクトリを作り、その中にcloneする`だと思います。


CC BY-SA 3.0
2015-01-11T05:09:06.640
4394
2015-01-11T05:09:06.640
5910
4389
answer