😸

Gitをシンプルに使えるCLIツール作った - begit

2020/09/29に公開約2,500字

begit

公式ページはこちら
https://www.npmjs.com/package/begit

思想

  • Git、GitHubがよくわからない・あまり使ったことがない方でも、安全・簡単に使える。
  • とにかく、簡単にリポジトリを作って、簡単にプッシュできる。

事前準備

CLIを使用する前に、以下の準備が必要です。

CLIインストール

以下のコマンドをターミナルで実行してください。

$ npm install -g begit

以下のメッセージが表示されれば、インストール完了です。

/usr/local/bin/begit -> /usr/local/lib/node_modules/begit/index.js
+ begit@0.1.0
updated 1 package in 2.367s

使い方

初期設定を行う

Gitがパソコンにインストールされているか確認します。

$ begit init

インストールされている場合、Gitのバージョンが表示されます。

$ begit init
初期設定を行います。

Git:確認しています...
Git:インストール済み git version 2.28.0

インストールされていない場合は、表示されるURLからGitをインストールしてください。

初期設定を行います。

Git:確認しています...

Git:インストールされていません。
以下のURLからGitをダウンロード、インストールしてください。
  https://git-scm.com/

事前準備をする

プロジェクトのフォルダで、以下のコマンドを実行してください。
※このコマンドは初回のみで大丈夫です。
※cloneしてきた場合は実行不要です。

$ begit create <プロジェクト名>

サンプル

$ cd /path/to/project/folder
$ begit create sample-project
準備を開始します。
GitHubのユーザー名/メールアドレスを入力してください。
> {ここにユーザー名を入力してください}
GitHubのパスワードを入力してください。
> {ここにパスワードを入力してください}
準備しています...
準備が完了しました。以下のURLからアップロードしたファイルを見ることができます。
  https://github.com/{ユーザー名}/sample-project

新しいファイルをアップロードする場合は、以下のコマンドを実行してください。
  $ begit upload

ユーザー名とパスワードはプログラム上保存されません。

コマンドを実行すると、GitHubにリポジトリが作成され、ここにファイルがアップロードされていきます。

同じプロジェクトフォルダにcreateコマンドを複数回実行した場合、以下のメッセージが表示されます。(何回実行しても特に問題ありません。)

$ begit create sample-project
このフォルダは準備済みです。

裏側の処理

  1. カレントディレクトリでgit initを実行します。
  2. GitHubにプロジェクト名で指定したリポジトリを作成し、リモートoriginに設定します。
  3. .gitkeepファイルを作成し、masterブランチをリモートにプッシュします。

デフォルトでprivateの可視性です。
publicにする場合は、GitHubリポジトリの設定から行ってください)

ファイルをGitHubにアップロードする

$ begit upload

省略形
$ begit up

サンプル

$ begit upload
ファイルをアップロードしています...
アップロードが完了しました。

アップロードすると、GitHub上にファイルが表示されます。(今回はsample.txtをアップロードしました。)

裏側の処理

内部的には以下のコマンドを実行しています。

$ git add .
$ git commit -m "{現在時刻}"
$ git push

まとめ

リポジトリ作成を1コマンド、GitHubへのプッシュを1コマンドでできるCLIツールを作成しました。
この記事もbegitを使って更新していますが、とりあえずプッシュすれば良いリポジトリでは、ステップが減って良い感じです。

ワンタイムパスワードやトークンは今後対応予定です。
バグ報告、機能追加要望はコメントに記載いただくか、こちらのリポジトリにIssueを作成していただけると幸いです。

(なお、GitHub CLIとは関係ありません。)

Discussion

ログインするとコメントできます