所以我最近對 ??Neovim/Spacevim 非常熟悉,它真是太棒了!
我正在設定一些個人鍵系結和命令以及你有什么,目前正在研究 Git。
使用VSCode和iTerm2到來,從任何分支到想要開關時master或main或任何主分支是,我有一個別名如下:
alias gcom=git checkout $(git_main_branch)
我只需gcom在終端中輸入,它就會自動切換到任何主分支。不幸的是,在 Neovim 中,git_main_branch這不是一個東西,所以我試圖找出一個等價的東西,在那里我可以做一些像:Gcom在 Neovim 命令提示符中鍵入的事情,然后它切換到主分支。
我試圖在我的init.vim檔案中設定這樣的功能(我已經coc安裝了所有相應的 Git 插件,包括fugitive):
function! GitCheckoutMain()
let gitMainBranch = system('git_main_branch')
execute "normal! :Git checkout" . gitMainBranch
endfunction
然后設定一個命令
command! Gcom :call GitCheckoutMain()
但這并不能解決問題。有誰知道我如何用 Neovim 完成這個任務?謝謝!
uj5u.com熱心網友回復:
好吧,我想我實際上可能已經想出了如何解決這個問題。我將我GitCheckoutMain最初發布的功能更改為如下:
function GitCheckoutMain()
let mainGitBranch = system('git branch | grep -o -m1 "\b\(master\|main\)\b"')
echo mainGitBranch
endfunction
和我約束,且以我的Gcom命令從上面,并且當我運行:Gcom從Neovim終端,它列印出master在回購其中的情況下master是主要的分支。還將在主分支所在的存盤庫中對此進行測驗main,但我認為這將滿足我的要求...
編輯:這確實有效!這是我的完整代碼,供任何感興趣的人使用。
function GitCheckoutMain()
let mainGitBranch = system('git branch | grep -o -m1 "\b\(master\|main\)\b"')
execute "normal! :Git checkout " . mainGitBranch
endfunction
...
command! Gcom :call GitCheckoutMain()
無論我在哪個分支,如果我在:GcomNeovim 終端中輸入,它都會將分支更改為master或在該特定存盤庫中設定的main任何主分支。嗚呼!
我想歸功于@dwelle 在此執行緒中發布的答案 -如何在 Git 中獲取主分支的默認值?- 讓我達到最終結果!
uj5u.com熱心網友回復:
這是一個絕妙的解決方案!只是想為此添加我自己的 2 美分。如果您使用 GitHub 作為存盤庫,并且安裝了 GitHub CLI,則可以通過鍵入來獲取主目標分支
gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name'
這將打開另一種模式,該模式將列出主分支的名稱。我知道您已經到了需要的地方,但這可能是您可以實施的另一種更簡潔的方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/362469.html
上一篇:Git大寫名稱更改
