Skip to content

Instantly share code, notes, and snippets.

@TakesxiSximada
Last active October 13, 2016 13:36
Show Gist options
  • Save TakesxiSximada/d8e8382399bee5b109195aa43a519542 to your computer and use it in GitHub Desktop.
Save TakesxiSximada/d8e8382399bee5b109195aa43a519542 to your computer and use it in GitHub Desktop.
gistをgitで管理する

gistをgitで管理する

gistはgitリポジトリとして扱えるようになっているため、 git clone でcloneすることができます。 ただ通常のリポジトリとは若干異なるため以下の点に注意する必要があります。

  • リポジトリ名に自由な名前をつけられない

    githubで作成するリポジトリは好きな名前をつけることができます。 gistでは好きな名前はつけることができずgistを登録する際に割り振られるコードがリポジトリ名になります。

    例) f9569554e7d525044c746613bc8e9a27

    ただ git clone URL DIRNAME とすればDIRNAMEというディレクトリにcloneされます。(gitの機能ですね)

  • ディレクトリを扱えない

    gistで管理するリポジトリはディレクトリを管理できません。 ディレクトリをcommitしてpushするとエラーでpushに失敗します。 gistはあくまで簡単なコードスニペットなどを置くためのもので、 ディレクトリを作成する必要があるほど大きなものは通常のリポジトリを使う方が良さそうです。

  • dot file (例えば.gitignore) を登録すると一覧表示が dot fileになってしまう

    githubでリポジトリを作成し、README.mdと.gitignoreをpushするとREADME.mdが展開された状態でページに表示されます。 gistでも同様にMakrdownなどは展開されて表示されるのですが、一覧ページに表示されるのはファイル名でsortされた先頭の ファイルになります。 一覧ページはREADME.mdだけが登録されていればREADME.mdが表示されますが、 .gitignoreも登録されている場合は.gitignoreが表示として使われてしまいます。 そしてどのファイルを一覧表示で使うという設定もできません。

上記を踏まえると使い方としては次のような感じでしょうか。

  • close先のディレクトリ名でわかりやすいようにしておく
  • ディレクトリはコミットしない
  • ディレクトリを作る必要が出てきたら素直に通常のリポジトリに移す
  • dot fileは登録しない (本当になんとかしてくれ...)

こういうメモはqiitaに書いていたんですが、gistとqiitaの機能比較してみました。

内容 gist qiita
Markdown o o
ReStructuredText o x
HTML/css/js bl.ocks.org で表示可能 x
フォロー o x
ライク o (star) o (ストック)
コメント o o
一覧に非表示 o (private gist) o (限定共有投稿)
下書き x o (記事数制限あり)
編集リクエスト x o
編集履歴 o o
タグ x o
登録タグの最新投稿の一覧表示 x o

gistはforkはできるのにpullreqという考え方はないのでgithub上で修正依頼することはできません。 ただpatchを使ったやり方はstackoverflowで述べている人がいました。

http://stackoverflow.com/a/14772345

Pulling Gists isn't possible in the same manner as git pull, one could provide the changes via Gist in the form of a .diff/.patch. This can be done locally in your working directory with diff or via GitHub if it's already forked there:

Original: https://github.com/eternicode/bootstrap-datepicker/commit/c6f93eeab2
diff: https://github.com/eternicode/bootstrap-datepicker/commit/c6f93eeab2.diff
patch: https://github.com/eternicode/bootstrap-datepicker/commit/c6f93eeab2.patch
This way, it's differential and a lot easier to view/apply the changes, especially if it affects multiple files.

shareimprove this answer
answered Feb 8 '13 at 12:15

Alastair
3,87122023

hub am コマンドなどでpatch適応することはできそうです。

表示系や管理といった点ではgistにできてqiitaにできないことがまあまああるので、しばらくはgistでいいかなあと思います。 qiitaはタグや好きなタグに関連する最新記事を一覧表示する機能はとても便利だし、 ストックでなんか盛りかがっている感はgistよりもある気がします。

qiitaにできていること(特に編集リクエストとタグ)がgistに着けばいいのになあというのが所管です。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment