Benj: Я подозреваю, что вы уже нашли ответ, но я вижу, что никто не ответил на этот вопрос, так и я.
Если я могу сделать альтернативное предложение для файла псевдонимов. Похоже, вы пытаетесь решить это для git.
Лучший способ, который я нашел для этого в Windows, - отредактировать файл ~/.bashrc
. На большинстве машин для Windows это будет под C:\Users\<USERNAME>\.bashrc
.
Вы можете создать функцию, например:
function MergeLocDistFn {
local co_branch=$1
local merge_branch=$2
echo ">> Debug Command: git checkout ${co_branch}"
git checkout ${co_branch}
echo ">> Debug Command: git merge --ff-only --verbose origin/${merge_branch} || git rebase --preserve-merges --verbose origin/${merge_branch}"
git merge --ff-only --verbose origin/${merge_branch} || git rebase --preserve-merges --verbose origin/${merge_branch}
}
Затем вы можете создать псевдонимы в файле ~/.bashrc
, как следующее:
alias mergelocdist=MergeLocDistFn
alias mm='MergeLocDistFn master master'
Преимущество этого подхода заключается в том, что это позволит вы получите очень сложную функцию и, как я покажу здесь, отлаживаем ее также с помощью эхо-заявлений.
См. Прилагаемое изображение примера вывода. example output from bashrc
Обратите внимание, что если вы предпочитаете делать это для приглашения PowerShell, изменить профиль PowerShell еще проще, просто сообщите мне, и я покажу вам, как это сделать.
Другое примечание. Вы также можете создать функцию в .bashrc для текущей ветви. Вот пример функции:
function current_branch() {
ref=$(git symbolic-ref HEAD 2> /dev/null) || \
ref=$(git rev-parse --short HEAD 2> /dev/null) || return
echo ${ref#refs/heads/}
}
Вот пример использования функции current_branch:
alias gpush='git push -u origin $(current_branch)'
Я надеюсь, что его помогает, просто дайте мне знать, если вам нужны какие-либо разъяснения по этому вопросу.
Спасибо за помощь! В это время я не нашел никакого решения, поэтому еще раз спасибо! Я бы поцеловал тебя, если мог. – Benj
Nice выстрел для первого ответа. Я поставил ссылку на ваш ответ в комментариях к вопросу, который я связал в своем. – Benj
Замечательно, что это полезно. Если вы хотите изучить далее, я также рассказал о других методах bashrc на http://erpenbeck.io/2016/10/27/bashrc/.Например, если ваша команда использует удаленные каналы Git, разработки/мастер-ветви и т. Д., Есть удобный метод, называемый 'cloneIt', который будет настраивать все в одной команде. Настройте его в соответствии с правилами Git вашей команды. –