CLIからGithub引き要求をつくる方法


もともと私の投稿blog
私のような場合は、一日で多くのプルの要求を作成し、繰り返してgithubを訪問するという考えに悩まされてPRを作成する-私は間違って取得しないウェブサイトは、すべてのですが、それは時々あなたのCLIを残して、あなたのブラウザを開く必要があります迷惑をかけることができます(これはあなたの生産性IMMOに深刻な意味を持っている).
私はあなたのための素晴らしい解決策を持って、Githubはあなたのアーキテクチャに応じてインストールするために利用可能なCRIを介してPRのと他のものを作成するために使用できるクールなツールを持っています.
注意:彼ら(Githubの人々)は、それがあなたのログイン詳細を格納しないと言います.

インストールハブ


Hub is available on GitHub バイナリをダウンロードしたり、ソースからインストールしたりできます.残念ながらUbuntu 簡単に取得できない場合は、バイナリをダウンロードしてインストールする必要があります.
このポストでは、インストールと使用方法を詳述します.
注:私は使用しているgit version: 1.9.1 and debian 7.9

セットアップ


インストールが簡単です
# Linux x64
cd /tmp
wget https://github.com/github/hub/releases/download/v2.6.0/hub-linux-amd64-2.6.0.tgz -O - | tar -zxf -
sudo prefix=/usr/local hub-linux-amd64-2.6.0/install && rm -rf hub-linux-amd64-2.6.0
# See: https://github.com/github/hub#aliasing
echo "alias git=hub" >> ~/.bashrc
source ~/.bashrc

用途


成功したインストールの後、あなたはgit +ハブ準備ができています.
あなたが打つならばman hub あなたのCLIでは、あなたはこのようなものを見るべきです.

テスト


下の画像から、工具が100 %働くことを確認しました.

トリック



git aliasとの統合


時間の量hub 以来、キーボードに私の手を保つことによって私を救ったが、貴重です.それはPRの自動的にプッシュして作成するのに最適なアイデア-それはエイリアスが来る場所です.
私はGitエイリアスの大ファンですので、私はエイリアスを作成することを決めたcreate-pr それはプッシュし、githubにプル要求を作成します.
コマンドラインから直接gitでエイリアスを作成できます.グローバルを開く.gitconfig 編集のために、
git config --global --edit
これは、選択のエディタをポップアップし、あなたの編集を許可する.gitconfig .
見つける[alias] 下の関数と[alias] .
[alias]

    create-pr="!f() { \
        BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD); \
        git push -u origin "${BRANCH_NAME}"; \
        hub pull-request --no-edit; \
        };f"
このエイリアスは、関数を作成し、すぐに実行する、より複雑なスクリプト形式を使用します.この関数では、3つのことを行います.
  • BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD);
  • 現在のブランチの名前をGitから取得し、変数に格納します.
  • git push -u origin "${BRANCH_NAME}";
  • 現在の分岐をリモートの原点にプッシュし、同じ名前のリモートブランチと関連付ける
  • hub pull-request --no-edit
  • ハブを使用してプル要求を作成し、テキストエディタを開くことなく、プルリクエストタイトルと説明としてブランチの最初のコミットからメッセージを使用します
  • エイリアスを使用するには、単にPRを実行して実行するブランチをチェックアウトします.
    git create-pr
    
    これは必要に応じて枝をプッシュし、あなたのためのプル要求を作成するすべての1(PRのタイトルは、最後のコミットメッセージ)になります.
    注意: git aliasesの詳細については、この投稿を読んでくださいPhil Haack .

    バッシュ機能


    私は個人的に、私の便利なツールを配置する~/.bash_functions さらに簡単にアクセスするためには、下のコードをコピーすることができますし、あなたの.bashrc あなたが持っていないならば.bash_functions ファイル.
    mkpr() {
        BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD);
        git push -u origin "${BRANCH_NAME}" || true;
        hub pull-request --no-edit || true;
        }
    
    私のような場合は効率的に物事を行うように、また、次の機能を追加する.bashrc .
    function commiter() {
        # Add file, commit and push
        if [ $# -eq 0 ]; then
            # Ensure that file is supplied else exits
            echo "No file supplied"
            exit 1
        fi
    
        git add -f "$1";
        if [ "$2" == "" ]; then
            git commit -nm"Updated $1";
        else
            git commit -nm"$2";
        fi;
        bash -c "git push -q &"
        }
    
    機能commiter 上記は3つです.
  • git add -f "$1" ;
  • このコマンドは、作業ツリーで見つかった現在の内容を使用してインデックスを更新し、
    を返します.
  • git commit -nm"$2" ;
  • インデックスの現在の内容を、ユーザがログメッセージとともに新しいコミットに格納する
    を返します.message が与えられる.Updated <filename> はコミットメッセージとして使用されます.
  • bash -c "git push -q &" ;
  • リモートリファレンスは、バックグラウンドで静かにローカル参照を使用して更新します.
  • 用途


    以下のコマンドをコミットします.main.py , プッシュ要求を作成してください-私を必要とせずに、ブラウザを開けてください.
    commiter main.py && mkpr
    

    結論


    Hub Gitの周りをラップし、いくつかの物事の簡素化は素晴らしいツールです私は何回も一日を行う.Githubでそれをチェックアウトし、お楽しみください.