2016-07-13 131 views
2

我會在Cmder中的另一個別名中使用別名。Cmder:如何在另一個別名中使用別名?

我有一個很好的別名(第一批)的大命令,我會用這裏面另一個(第二):

的別名是在Cmder aliases文件,我在Windows 7 x64上。

該主題已被要求in this question,現在沒有回覆。

如果你回答我,也請你回答這個傢伙:)

發現this,似乎有一些幫助,但我不圖如何。

回答

1

Benj: 我懷疑你現在已經找到了答案,但我看到沒有人回答這個問題,所以我會這麼做。

如果我可以對別名文件提出替代建議。它看起來像你試圖解決這個混帳。

我發現在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' 

這種方法的好處是,它將使你可以非常熟悉這個函數,正如我在這裏展示的那樣,用echo語句來調試它。

請參閱示例輸出的附圖。 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)' 

我希望他的幫助,只是讓我知道,如果你需要在這個任何澄清。

+0

感謝您的幫助!我目前沒有找到任何解決方案,所以再次感謝!如果可以的話,我會吻你。 – Benj

+0

第一個答案的好拍攝。我在鏈接到我的問題的評論中給出了答案的鏈接。 – Benj

+0

很高興聽到它有幫助。 如果您想進一步探索,我還在http://erpenbeck.io/2016/10/27/bashrc/上發佈了其他bashrc技術的博客。例如,如果您的團隊使用Git上游遙控器,開發/掌握分支機構等,則有一種方便的方法稱爲「cloneIt」,它將使用一個命令對其進行配置。根據你團隊的Git約定進行定製。 –