0

git pushGitHub にコミットする前に、単体テストなどを実行するために、Gitの実際のコマンドにエイリアスを付けたいと考えています。

ここに私のconfigファイルがあります.git/

[alias]
  push = !echo "custom push"
  kk = !echo "hi" # => this works...

プッシュを無視しているようです。これは可能ですか?これが不可能な場合、代替手段はありますか?

4

3 に答える 3

1

git pushこれは、実行したいものを印刷して実行しないという不快感と戦うために書いたものです。はい、それには理由があります (すべてのゴミをリモートにプッシュするべきではありません) が、私のリモートは GitHub フォークであり、そこにプッシュされたガベージに苦しむ可能性があります。

これはEugene Kay の.bashrcものに基づいています (私はそこから保持しましたが、私にとってはうまくいかなかっcdた部分を削除しました)。which git追加する.bashrc.zshrc、味わうために:

function git() {
  # Path to the `git` binary
  GIT="/usr/bin/git"

  # Sanity check
  if [ ! -f ${GIT} ]
  then
    echo "Error: git binary not found" >&2
    return 255
  fi

  # Command to be executed
  command=$1

  # Remove command from $@ array
  shift 1

  # Check command against list of supported commands
  case $command in
  "cd")
    cd $(git rev-parse --show-toplevel)/${1}
    ;;
  "push")
    if [ -z "$1" ]
    then
      $GIT push || $GIT push -u origin $($GIT rev-parse --abbrev-ref @)
    else
      $GIT ${command} "$@"
    fi
    ;;
  *)
    # Execute the git binary
    $GIT ${command} "$@"
    ;;
  esac

  # Return something
  return $?
}
于 2014-06-28T07:51:17.673 に答える
1

プッシュ コマンドと競合するため、プッシュにエイリアスを設定することはできませんが、"pre-push" フックを使用してみることができます。詳細については、次のパッチを参照してください。

別のアプローチは、GitHub でpost-receiveフックを使用して、ユニット テストなどを実行し、変更を承認または拒否する統合サーバーに POST を実行するように構成することです。ただし、セットアップによっては、それは実用的ではない場合があります。

于 2012-04-19T23:16:18.640 に答える
0

エイリアスを作成する代わりに、git の pre-commit フックを使用します。

http://book.git-scm.com/5_git_hooks.html

于 2012-04-19T23:06:31.420 に答える