Hub, yang merupakan satu program yang dirilis oleh Github agar kita bisa melakukan aktivitas di Github melalui command line.

Hal ini sangat berguna untuk developer atau orang yang memiliki tanggung jawab pada repo yang dibuat.

Hub sendiri merupakan ekstensi dari perintah git, yang artinya hub dibangun di atas perintah git yang sudah ada, beberapa perintah hub ini dibuat spesifik untuk berhubungan dengan github, seperti pull-request dan beberapa perintah lain yang spesifik Github juga, selain subcommand ini, hub bisa digunakan juga untuk komunikasi dengan penyedia layanan git yang lain seperti Bitbucket atau Gitlab.

❯ hub help
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]
...
These GitHub commands are provided by hub:

   api            Low-level GitHub API request interface
   browse         Open a GitHub page in the default browser
   ci-status      Show the status of GitHub checks for a commit
   compare        Open a compare page on GitHub
   create         Create this repository on GitHub and add GitHub as origin
   delete         Delete a repository on GitHub
   fork           Make a fork of a remote repository on GitHub and add as remote
   gist           Make a gist
   issue          List or create GitHub issues
   pr             List or checkout GitHub pull requests
   pull-request   Open a pull request on GitHub
   release        List or create GitHub releases
   sync           Fetch git objects from upstream and update branches

Instalasi

Untuk pengguna mac, instalasi cukup gampang, dengan menggunakan homebrew, untuk yang belum mengetahui homebrew bisa membaca artikel jenius.tech yang lalu.

> brew install hub

verifikasi instalasi dan versinya

❯ hub version
git version 2.25.1
hub version 2.14.2

Penggunaan

Seperti penjelasan di atas, hub dapat digunakan untuk repository git yang ada di mesin kita, mengaturnya, seperti membuat branch, commit, push dan operasi git lainnya

❯ hub status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)

Dan untuk perintah yang spesifik terhadap Github misalkan, bisa kita test dengan menggunakan subcommand create dan delete yang akan membuat repository baru dan menghapusnya.

❯ hub create microservice-cendol
A git remote named 'origin' already exists and is set to push to 'ssh://git@github.com/dedenf/dedenf.github.io.git'.
https://github.com/dedenf/microservice-cendol

Dengan perintah di atas, saya membuat repo microservice-cendol, dan jika kita lihat di halaman repo Github user kita

Atau jika kita sudah memiliki project di mesin kita yang hendak kita jadikan repo di Github, bisa dengan perintah git dulu untuk menginisiasi repo, dan kemudian membuat repo-nya berdasarkan folder yang sedang aktif.

~/Developments/tem/hub
❯ touch readme.md

~/Developments/tem/hub
❯ git init
Initialized empty Git repository in /Users/dedenf/Developments/tem/hub/.git/

~/Developments/tem/hub master*
❯ git add .

~/Developments/tem/hub master*
❯ git commit -m "init"
[master (root-commit) 7c38066] init
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 readme.md

~/Developments/tem/hub master
❯ hub create
Updating origin
https://github.com/dedenf/hub

Dan masih banyak lagi perintah yang bisa digunakan dalam pengoperasian git melalui perintah hub ini, silakan baca-baca dokumentasinya.