dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

GitHubでの開発に便利なツール3選

ツールというか CLI
全部有名なのでほとんどの方がご存知だと思うが、自分がよく使うものを。

1. hub

https://github.com/github/hub

git コマンドの機能を拡張したもの。

(参考)

インストール

Mac の場合は Homebrew から。

$ brew install hub
$ which hub
/usr/local/bin/gibo
使い方

README 見てるとエイリアスを設定して git のかわりに使うもののようだけど
私は以下の2つのコマンドだけを直接 hub コマンドとして使用している。

# GitHub にリポジトリを作成する
$ hub create foo
Updating origin
created repository: zaki-yama/foo

# 現在いるリポジトリを GitHub で開く
$ hub browse


2. gibo

https://github.com/simonwhitaker/gibo

.gitignore を自動生成してくれる。

(参考)

インストール

同じく Homebrew からインストール可能。

$ brew install gibo
$ which gibo
/usr/local/bin/gibo
使い方

gibo の後ろに開発したい言語やフレームワーク名を入れると、その言語/フレームワークに合う .gitignore の中身を出力してくれる。

# -l で一覧が表示できる
$ gibo -l
=== Languages ===

Actionscript            Composer                ExtJs                   Jekyll                  Node                    Rails                   TeX
Ada                     Concrete5               Fancy                   Joomla                  Objective-C             RhodesRhomobile         Textpattern
Agda                    Coq                     Finale                  KiCad                   OCaml                   ROS                     TurboGears2
Android                 CraftCMS                ForceDotCom             Kohana                  Opa                     Ruby                    Typo3
AppceleratorTitanium    CUDA                    Fortran                 LabVIEW                 OpenCart                Rust                    Umbraco
AppEngine               D                       FuelPHP                 Laravel                 OracleForms             Sass                    Unity
ArchLinuxPackages       Dart                    Gcov                    Leiningen               Packer                  Scala                   UnrealEngine
Autotools               Delphi                  GitBook                 LemonStand              Perl                    SCons                   VisualStudio
C++                     DM                      Go                      Lilypond                Phalcon                 Scrivener               VVVV
C                       Drupal                  Gradle                  Lithium                 PlayFramework           Sdcc                    Waf
CakePHP                 Eagle                   Grails                  Lua                     Plone                   SeamGen                 WordPress
CFWheels                Elisp                   GWT                     Magento                 Prestashop              SketchUp                Xojo
ChefCookbook            Elixir                  Haskell                 Maven                   Processing              Stella                  Yeoman
Clojure                 Elm                     Idris                   Mercury                 Python                  SugarCRM                Yii
CMake                   EPiServer               IGORPro                 MetaProgrammingSystem   Qooxdoo                 Swift                   ZendFramework
CodeIgniter             Erlang                  Java                    Nanoc                   Qt                      Symfony                 Zephir
CommonLisp              ExpressionEngine        Jboss                   Nim                     R                       SymphonyCMS

=== Global ===

Anjuta                  Dreamweaver             IPythonNotebook         LyX                     Ninja                   SublimeText             VirtualEnv
Archives                Eclipse                 JDeveloper              Matlab                  NotepadPP               SVN                     VisualStudioCode
BricxCC                 EiffelStudio            JetBrains               Mercurial               OSX                     SynopsysVCS             WebMethods
Calabash                Emacs                   Kate                    MicrosoftOffice         Otto                    Tags                    Windows
Cloud9                  Ensime                  KDevelop4               ModelSim                Redcar                  TextMate                Xcode
CodeKit                 Espresso                Lazarus                 Momentics               Redis                   TortoiseGit             XilinxISE
CVS                     FlexBuilder             LibreOffice             MonoDevelop             SBT                     Vagrant
DartEditor              GPG                     Linux                   NetBeans                SlickEdit               Vim

# Python の場合
$ gibo python
### https://raw.github.com/github/gitignore/c844436111744d996ed453843d85125bab22af32/python.gitignore

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
.hypothesis/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py

# Flask instance folder
instance/

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# IPython Notebook
.ipynb_checkpoints

# pyenv
.python-version

結果は標準出力されるので、> .gitignore などのようにファイルに出力するようにする。

$ gibo python > .gitignore


propen

現在いるブランチの Pull Request を開く。

(参考)

インストール

インストールするものではなく、.bashrc.zshrc にコマンドを記述する。

(.zshrc の場合)

propen() {
  local current_branch_name=$(git symbolic-ref --short HEAD | xargs perl -MURI::Escape -e 'print uri_escape($ARGV[0]);')
  hub browse -- pull/${current_branch_name}
}
使い方

GitHub で管理しているディレクトリ内で

$ propen

を実行する。