说我想要一个新的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