說我想要一個新的git命令,git new,它使得一個新的分支與原點/主機保持同步。Windows自定義git命令
有沒有一種方法可以讓這個腳本在PowerShell中的所有倉庫中都可用?
編輯:澄清我想要一個git腳本不是PowerShell功能。我提到powershell的唯一原因是因爲我不使用git bash。
說我想要一個新的git命令,git new,它使得一個新的分支與原點/主機保持同步。Windows自定義git命令
有沒有一種方法可以讓這個腳本在PowerShell中的所有倉庫中都可用?
編輯:澄清我想要一個git腳本不是PowerShell功能。我提到powershell的唯一原因是因爲我不使用git bash。
創建包含以下命令的批處理文件:
git branch %1 origin/master
git checkout %1
保存它,讓我們說,作爲C:\Scripts\new-branch.cmd
。 (我從來沒有使用PowerShell,我不知道它的規則,但是它應該使用舊的Windows命令提示符)。
測試批處理文件,按預期工作運行:
C:\Scripts\new-branch.cmd test1
它應該輸出的東西沿着這些路線:
Branch test1 set up to track remote branch master from origin by rebasing.
Switched to branch 'test1'
Your branch is up-to-date with 'origin/master'.
如果你不需要新的分支追蹤遠程分支那麼您只需將--no-track
添加到git branch
命令。
如果一切順利,然後運行:
git config --global alias.new '!C:/Scripts/new-branch.cmd'
這使得Git
別名new
提供給所有存儲庫的Windows配置文件。如果只需要在一個存儲庫中使用它,請刪除--global
,並在當前目錄位於您需要的存儲庫中時運行該命令。
使用它作爲:
git new test2
這不完全是我想到的,但肯定是做我想要的。謝謝! – RusinaRange
btw是%1不是$ 1 – RusinaRange
你說得對。我在Linux上編寫並測試了它:-)現在更新答案。 – axiac
你可以使用你的git一個別名其中使用git checkout
:
git config --globla alias.new 'checkout origin/master -b'
這將被用來作爲git new new_branch
。
(這是equivolent到git checkout origin/master -b new_branch
見git docs for checkout。我試着命令和它的工作,但是當我看了看文檔,我沒有找到完全匹配我的形式語法。(最近是git checkout [-q] [-f] [-m] [[-b|-B|--orphan] <new_branch>] [<start_point>]
)
注:@axiac,我可能已經使用了!git
,因爲它不傷害,我可能需要做多個命令來解決這個問題,我做的時候並沒有將其刪除
您可以使用運行批處理文件的別名。[本文](http:// stacko verflow.com/questions/24914589/how-to-create-permanent-powershell-aliases)會幫助你很多。 – byxor
這完全沒有幫助。我想用'git new'來運行它,因爲你不能這樣做別名。我也不想做一個hacky的powershell函數,我想在Windows上創建一個git腳本。 – RusinaRange
好吧,這只是一個建議。 – byxor