将 git pull 替换为 git up

Replace git pull with git up

我用的是git up in order to avoid merge bubbles,但是有时候不小心发出一个git pull

系统地用 git up 替换 git pull 的最佳方法是什么?

git-config 文档中所述,无法为现有 git 命令添加别名。

我们可以使用一个 bash 函数来询问您是否要实际使用 git pull 命令,并且还为您提供了使用 git up 的机会:

function git() {
    if [[ $@ == "pull" ]]; then
        read -p "Do you want to [p]ull, [u]p or [a]bort? " yn
        case $yn in
            [Pp]* ) command git pull;;
            [Uu]* ) command git up;;
            * ) echo "bye";;
        esac
    else
        command git "$@"
    fi
}

例子

$ git pull
 Do you want to [p]ull, [u]p or [a]bort? u
 Fetching origin
 master up to date
$ git pull
 Do you want to [p]ull, [u]p or [a]bort? p
 Already up-to-date.
$ git pull
 Do you want to [p]ull, [u]p or [a]bort? a
 bye

我的一位事实上的导师曾经说过

I don't define aliases, I type the whole commands so that I don't forget them eventually.

在其他福特,就这样

git fetch
git rebase origin/master  # fails due to local changes
git stash
git rebase origin master
git stash pop

是的,需要大量输入。这不是错误,这是一个功能。 If/when一个步骤失败,你得去检查为什么

它迫使您思考您的工作。与 make small commits with long commit messages.

相同