Humanity

Edit the world by your favorite way

gittools

tyru/gittools · GitHub

gittoolsとかいう名前で~/bin/以下にあったgitのサブコマンドをまとめてみた。
ただ比較的最近というか今日作ったスクリプトも含まれてる。

説明めんどくなってしまったので
というよりそこそこちゃんと--help書いたので
適当にpod2textしたものを貼り付ける。

どっちも短いPerlスクリプトなので
Perlわかる人であれば見ればわかると思います。

git-setup

ディレクトリ作ってファイル作ってgit initとかめんどくさいですね。
これはそれすら面倒くさい、いわゆる書き捨てコードだけど
バージョン管理はしたいという場合、gistでもいいのだけど
公開する理由もないしローカルで十分という場合に。
「git setup {file}」で。
あっという間に。
コードが出来上がる。嘘です。

NAME
        git-setup - set up git repository

USAGE
        git setup [OPTIONS] {file}                    (1)
        git setup [OPTIONS] {file} {repo dir}         (2)
        git setup [OPTIONS] {file1}{file2} {repo dir} (3)

SYNOPSIS
        (1)

        # Creates file/dir foo
        $ vim foo

        # Creates repo 'foo' and
        # original 'foo' will be moved to 'foo/foo'.
        $ git setup foo

        (2)

        # Creates file/dir foo
        $ vim foo

        # Creates repo 'foo' and
        # original 'bar' will be moved to 'foo/bar'.
        $ git setup bar foo

        (3)

        # Creates repo 'foo' and
        $ vim foo

        # Creates repo 'foo' and
        # original 'bar', 'baz' will be moved
        # to 'foo/bar', 'foo/baz'.
        $ git setup bar baz foo

OPTIONS
    -h, --help
        Show this help.

AUTHOR
    tyru <tyru.exe@gmail.com>

mvっぽい引数になってます。


そういえば記事書くまで忘れてたけどroot commitのコミットログは「hi」固定になってる。
自分はそればっかりなので。
気にいらない人もいるかと思うので、該当個所適当に変えてみるか、
forkしてpull request飛ばしてくれるとうれしいですね!
(特有の環境変数が定義されていればそれを使うとか?してくださるとうれしいですね!)

git-split-submodule

git filter-branchは現在のリポジトリを破壊するので
そう意図してないとうっかりオリジナルのリポジトリでやりそうで怖い(やったことないけど)。
「git split-submodule path/to/tree /path/to/submodule」で/path/to/submoduleに切り分けるよ。
path/to/treeは--subdirectory-filterに渡す引数。
ついでにpath/to/treeをgit rmしてからgit submodule addするよ。べんり!

別にgit submodule addしなくてもいいよって場合は
-Sオプションもしくは--no-add-submoduleオプション渡せばいいよ。

NAME
        git-split-submodule - split a path to indivisual repository (submodule).

USAGE
        git split-submodule [OPTIONS] {tree path} {submodule path}

SYNOPSIS
        $ git split-submodule path/to/tree /path/to/submodule

        # now 'path/to/tree' becomes submodule.
        # and repository is at '/path/to/submodule'.

OPTIONS
    -h, --help
        Show this help.

    -S, --no-add-submodule
        Do not execute "git submodule add {submodule path} {tree path}".

    -q, --quiet
        Do not output verbose messages.

    --bare
        Pass --bare option to "git-clone".

AUTHOR
    tyru <tyru.exe@gmail.com>

最近spamが来るのは

メールアドレスを伏せないからだろうなぁ(馬鹿
でもどうせそのうち学習するのでそのままにしておく。